目錄
一、MDK-ARM環(huán)境介紹及安裝
二、STM32Cube簡介及安裝
??STM32CubeMX安裝
加載固件庫
?編輯
?三、 STM32F0存儲(chǔ)器映射
四、STM32啟動(dòng)文件分析
略
五、GPIO的基本概念及寄存器介紹1
1、GPIO接口簡介
?2、GPIO功能復(fù)用
?3、GPIO寄存器介紹
?GPIO工作原理框圖:
五、點(diǎn)亮LED寄存器版(STM32F051K8)
1、硬件原理圖分析
2、 使能GPIO的時(shí)鐘
3、編程步驟分析?
六、點(diǎn)亮LED庫函數(shù)版(STM32F051K8)?
2、CubeMX的配置
?3、初始化關(guān)鍵代碼分析
4、控制LED關(guān)鍵代碼分析
七、初識(shí)人機(jī)交互--按鍵
1、硬件原理圖分析
作業(yè):拍攝stm32流水燈視頻
一、MDK-ARM環(huán)境介紹及安裝
?略
二、STM32Cube簡介及安裝
?直觀的選擇STM32微控制器
?微控制器圖形化配置
自動(dòng)處理引腳沖突
動(dòng)態(tài)設(shè)置確定的時(shí)鐘樹
可以動(dòng)態(tài)確定參數(shù)設(shè)置的外圍和中間件模式和初始化
功耗預(yù)測
?C代碼工程生成器覆蓋了STM32微控制器初始化編譯軟件,如IAR,KEIL,GCC可以獨(dú)立使用,作為Eclipse插件使用
??STM32CubeMX安裝
? 安裝JAVA運(yùn)行環(huán)境,JavaSetup8u151.exe?
? 解壓stm32cubemx.zip,安裝SetupSTM32CubeMX-4.22.0.exe,最好不要有中文路徑
? 解壓stm32cube_fw_f0_v180.zip到STM32CubeMX的安裝路徑中
?
加載固件庫
?三、 STM32F0存儲(chǔ)器映射
?略
四、STM32啟動(dòng)文件分析
略
五、GPIO的基本概念及寄存器介紹1
1、GPIO接口簡介
?通用輸入輸出接口GPIO是嵌入式系統(tǒng)、單片機(jī)開發(fā)過程中最常用的接口,用戶可以通過編程靈活的對(duì)接口進(jìn)行控制,實(shí)現(xiàn)對(duì)電路板上LED、數(shù)碼管、按鍵等常用設(shè)備控制驅(qū)動(dòng),也可以作為串口的數(shù)據(jù)收發(fā)管腳,或AD的接口等復(fù)用功能使用。因此其作用和功能是非常重要的。
?
?2、GPIO功能復(fù)用
?注:查看 《 STM32F0數(shù)據(jù)手冊》
?3、GPIO寄存器介紹
??STM32F051-GPIO常用寄存器 ?
4個(gè)32位配置寄存器 ? ? ? ? GPIOx_MODER, ?GPIOx_OTYPER, ?GPIOx_OSPEEDR ? ? GPIOx_PUPDR ?
2個(gè)32位數(shù)據(jù)寄存器 ? ? ? GPIOx_IDR 、GPIOx_ODR
1 個(gè)32 位置位 / 復(fù)位寄存器 ? ? ? GPIOx_BSRR
2 個(gè) 32 位復(fù)用功能配置寄存器 ? ? ?GPIOx_AFRH 、GPIOx_AFRL
注:每一組GPIO端口都有一套上述的寄存器去配置它自己的功能
GPIO寄存器MODER:
GPIO 端口模式寄存器 (GPIOx_MODER) (x = A..D,F) ? ? 偏移地址: 0x00 ? ? 復(fù)位值: ?
● ?0x2800 0000 端口 A ? ● ?0x0000 0000 其他口
GPIO寄存器OTYPER:
GPIO 端口輸出類型寄存器 (GPIOx_OTYPER) (x = A..D,F) ? 偏移地址: 0x04 ? 復(fù)位值: 0x0000 0000
?
?GPIO工作原理框圖:
?GPIO寄存器OSPEEDR:
? GPIO 口輸出速度寄存器 (GPIOx_OSPEEDR) (x = A..D,F) ? ? ?偏移地址: 0x08 ? ? ?復(fù)位值: 0x0000 0000
?
?GPIO寄存器PUPDR:
? GPIO 口上拉 / 下拉寄存器 (GPIOx_PUPDR) (x = A..D,F) ? ? ?偏移地址: 0x0C ? ? ?復(fù)位值: ? ? ● 0x2400 0000 端口 A ? ? ● 0x0000 0000 其它端口
?
?GPIO寄存器IDR:
? GPIO 端口輸入數(shù)據(jù)寄存器 (GPIOx_IDR) (x = A..D,F) ? ? ?偏移地址: 0x10 ? ? ?復(fù)位值: 0x0000 XXXX (X 表明不定 )
?
?GPIO寄存器ODR:?
GPIO 端口輸出數(shù)據(jù)寄存器 (GPIOx_ODR) (x = A..D,F) ? ? ?偏移地址: 0x14 ? ? ?復(fù)位值: 0x0000 0000
?
?GPIO寄存器BSRR:
? GPIO 端口置位 / 復(fù)位寄存器 (GPIOx_BSRR) (x = A..D,F) ? ? ?偏移地址: 0x18 ? ? ?復(fù)位值: 0x0000 0000
?
?GPIO寄存器AFRL:
? GPIO 復(fù)用功能低位寄存器 (GPIOx_AFRL) (x = A..B) ? ? ? 偏移地址: 0x20 ? ? ? 復(fù)位值: 0x0000 0000
?
GPIO寄存器AFRH:
? GPIO 復(fù)用功能低位寄存器 (GPIOx_AFRH) (x = A..B) ? ? ? 偏移地址: 0x24 ? ? ? 復(fù)位值: 0x0000 0000
?
五、點(diǎn)亮LED寄存器版(STM32F051K8)
1、硬件原理圖分析
?
2、 使能GPIO的時(shí)鐘
?
??AHB 外部時(shí)鐘使能寄存器 (RCC_AHBENR) ? ?
偏移地址 : 0x14 ? ? 復(fù)位值 : 0x0000 0014 ? ? 訪問:無等待周期,字,半字和字節(jié)訪問
3、編程步驟分析?
??開啟GPIOB的時(shí)鐘 ? ? ? ?RCC->AHBENR ?|= ?1<<18; ? ? ? ? ? ? ?
配置PB0 PB1 PB2接口 ? ? ? ? ?
GPIOB->MODER |= (1<<0)|(1<<2)|(1<<4); ? ?//設(shè)置PB0, PB1, PB2為通用輸出模式 ? ? ? GPIOB->OTYPER = 0x0; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//設(shè)置PB0, PB1, PB2為通用推挽輸出 ? ? ? GPIOB->OSPEEDR = 0x0; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //設(shè)置輸出速度為低速 ?
控制LED; ? ? ? ? ? ? ? ? ? ? ? ? ?
GPIOB->BSRR = (1<<16)|(1<<17)|(1<<18); ? ? //復(fù)位PB0, PB1, PB2 既點(diǎn)亮LED ? ? ? ?GPIOB->BSRR = (1<<0)|(1<<1)|(1<<2); ? ? ? ? ? ?//置位PB0, PB1, PB2 既熄滅LED
六、點(diǎn)亮LED庫函數(shù)版(STM32F051K8)?
?1、硬件原理圖
2、CubeMX的配置
?
?
?3、初始化關(guān)鍵代碼分析
?GPIOB初始化
void MX_GPIO_Init(void)
{
? ?? ?GPIO_InitTypeDef GPIO_InitStruct;
?? ?__HAL_RCC_GPIOB_CLK_ENABLE(); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //使能GPIOB的時(shí)鐘
?? ?
?? ? GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2; ? ? ? //初始化對(duì)象為0, 1, 2號(hào)管腳
??? ? GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; ? ? ? ? ? ? ? ? ? ? ? ?//模式為推挽輸出
??? ? GPIO_InitStruct.Pull = GPIO_NOPULL; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//沒有上拉
??? ? GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; ? ? ? ? ? ? ? ? ? ? ? ? //低速
?? ? ?HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //配置好后開始初始化
}
4、控制LED關(guān)鍵代碼分析
復(fù)位PB0, PB1, PB2 既點(diǎn)亮LED ? ? ?
HAL_GPIO_WritePin(GPIOB, ?GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2, GPIO_PIN_RESET); ?
置位PB0, PB1, PB2 既熄滅LED ? ? ? ?
HAL_GPIO_WritePin(GPIOB, ?GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2, GPIO_PIN_SET);
七、初識(shí)人機(jī)交互--按鍵
1、硬件原理圖分析
?文章來源:http://www.zghlxwxcb.cn/news/detail-430331.html
?文章來源地址http://www.zghlxwxcb.cn/news/detail-430331.html
作業(yè):拍攝stm32流水燈視頻
到了這里,關(guān)于L16物聯(lián)網(wǎng)ARM開發(fā)--開發(fā)環(huán)境搭建及平臺(tái)及GPIO口操作平臺(tái)介紹(day2、3)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!