我們用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………查詢(xún)?nèi)缦拢?/p>

再點(diǎn)擊GPIOMode_TypeDef,查詢(xún)?nèi)缦拢?/p>

選擇合適的類(lèi)型,將其復(fù)制粘貼下來(lái),完成GPIO_Mode的配置:

完成GPIO的配置:

三, 編寫(xiě)main函數(shù)

-
STM32
+關(guān)注
關(guān)注
2307文章
11150瀏覽量
372393 -
C語(yǔ)言
+關(guān)注
關(guān)注
183文章
7642瀏覽量
145111 -
跑馬燈
+關(guān)注
關(guān)注
5文章
117瀏覽量
35695
原文標(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)
基于STM32的跑馬燈實(shí)驗(yàn)的詳細(xì)解析
評(píng)論