我們用C語(yǔ)言來(lái)再學(xué)習(xí)STM32,以加深理解,并且應(yīng)用相關(guān)資料和官方固件標(biāo)準(zhǔn)庫(kù)。因此,我們來(lái)編寫(xiě)一個(gè)跑馬燈實(shí)驗(yàn)
先前準(zhǔn)備
一, 開(kāi)發(fā)環(huán)境
安裝MDK5,并且導(dǎo)入STM32官方標(biāo)準(zhǔn)庫(kù)。
STM32官方標(biāo)準(zhǔn)庫(kù)名稱(chēng):stm32f4_dsp_stdperiph_lib
這個(gè)STM32官方固件標(biāo)準(zhǔn)庫(kù)以前是可以在ST官網(wǎng)下載,現(xiàn)在好像在官網(wǎng)上找不到了。
二,相關(guān)應(yīng)用資料:STM32F4XX中文參考手冊(cè)
相關(guān)函數(shù)
一,因?yàn)橐褂肎PIO,在使用GPIO時(shí)需要先使能IO口時(shí)鐘。
使能IO時(shí)鐘就要使用到RCC寄存器。RCC寄存器相關(guān)知識(shí),見(jiàn)中文參考手冊(cè)6.3章節(jié)。
調(diào)用函數(shù):RCC_AHB1PeriphClockCmd();
二,因?yàn)橐玫紾PIO配置,所以要用到GPIO庫(kù)函數(shù)。
1, GPIO庫(kù)文件
頭文件:stm32f4xx_gpio.h
源文件:stm32f4xx_gpio.c
2, 重要的GPIO庫(kù)函數(shù)
(1)GPIO初始化函數(shù)
void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);
(2)設(shè)置電平輸出函數(shù)
輸出高電平:
void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
輸出低電平:
void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
程序編寫(xiě)
一,程序的實(shí)現(xiàn):
使開(kāi)發(fā)板上的LED1,LED2,LED3,LED4循環(huán)點(diǎn)亮,實(shí)現(xiàn)流水燈效果。
硬件電路圖:
二,編寫(xiě)LED子程序
1, led.h頭文件
2, led.c源文件
3, 在led.c中如何使能GPIO時(shí)鐘
(1)在庫(kù)文件rcc.hk中找到”RCC_AHB1PeriphClockCmd(); “并將其復(fù)制粘貼下來(lái)
(2)點(diǎn)擊函數(shù)再右鍵Go To Definition………,查找入口參數(shù)
(3)查找第一個(gè)入口參數(shù)
注:assert_param的作用就是用來(lái)判斷傳遞給函數(shù)的參數(shù)是否是有效;
找到C組GPIO,將其復(fù)制粘貼到括號(hào)里
完成第一入口參數(shù):
如果還有使能別的IO口,就用或符號(hào)”|”,后面添加
(4)查找到二個(gè)入口參數(shù):
要使能的話就選擇ENABLE將其復(fù)制粘貼下來(lái)
完成第二個(gè)入口參數(shù),完成GPIO的時(shí)鐘使能函數(shù)的調(diào)用:
4, 在led.c中如何配置GPIO函數(shù):如,配置D組IO口
(1)輸入函數(shù)GPIO_Init(); ,用上面的方法來(lái)配置第一個(gè)入口函數(shù),完成第一個(gè)入口函數(shù)如下:
(2)第二個(gè)入口參數(shù),是個(gè)結(jié)構(gòu)體
先將它復(fù)制粘貼下來(lái),去掉*號(hào),進(jìn)行定義這個(gè)結(jié)構(gòu)體:
完成第二個(gè)入口參數(shù):
(3)用結(jié)構(gòu)體來(lái)完成GPIO的配置
GPIO_InitStructure加點(diǎn)來(lái)進(jìn)行各類(lèi)型的寄存器配置:
配置GPIO_Mode寄存器,點(diǎn)擊GPIO_Mode,右鍵Go To Definition………查詢?nèi)缦拢?/p>
再點(diǎn)擊GPIOMode_TypeDef,查詢?nèi)缦拢?/p>
選擇合適的類(lèi)型,將其復(fù)制粘貼下來(lái),完成GPIO_Mode的配置:
完成GPIO的配置:
三, 編寫(xiě)main函數(shù)
-
STM32
+關(guān)注
關(guān)注
2293文章
11032瀏覽量
365040 -
C語(yǔ)言
+關(guān)注
關(guān)注
180文章
7632瀏覽量
141791 -
跑馬燈
+關(guān)注
關(guān)注
5文章
117瀏覽量
35332
原文標(biāo)題:用官方固件庫(kù)來(lái)編個(gè)運(yùn)行在STM32上的跑馬燈
文章出處:【微信號(hào):weixin21ic,微信公眾號(hào):21ic電子網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
單片機(jī)跑馬燈實(shí)驗(yàn)
跑馬燈程序【C語(yǔ)言版】
ALIENTEK_MINISTM32_實(shí)驗(yàn)1_跑馬燈
代碼控制開(kāi)發(fā)板LED:STM32跑馬燈試驗(yàn)
使用STM32開(kāi)發(fā)板進(jìn)行跑馬燈實(shí)驗(yàn)的程序資料說(shuō)明

STM32學(xué)習(xí)——GPIO應(yīng)用之跑馬燈+蜂鳴器實(shí)驗(yàn)

評(píng)論