我們用C語言來再學習STM32,以加深理解,并且應用相關資料和官方固件標準庫。因此,我們來編寫一個跑馬燈實驗
先前準備
一, 開發(fā)環(huán)境
安裝MDK5,并且導入STM32官方標準庫。
STM32官方標準庫名稱:stm32f4_dsp_stdperiph_lib
這個STM32官方固件標準庫以前是可以在ST官網下載,現在好像在官網上找不到了。
二,相關應用資料:STM32F4XX中文參考手冊
相關函數
一,因為要使用GPIO,在使用GPIO時需要先使能IO口時鐘。
使能IO時鐘就要使用到RCC寄存器。RCC寄存器相關知識,見中文參考手冊6.3章節(jié)。

調用函數:RCC_AHB1PeriphClockCmd();
二,因為要用到GPIO配置,所以要用到GPIO庫函數。
1, GPIO庫文件
頭文件:stm32f4xx_gpio.h
源文件:stm32f4xx_gpio.c
2, 重要的GPIO庫函數
(1)GPIO初始化函數
void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);
(2)設置電平輸出函數
輸出高電平:
void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
輸出低電平:
void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
程序編寫
一,程序的實現:
使開發(fā)板上的LED1,LED2,LED3,LED4循環(huán)點亮,實現流水燈效果。
硬件電路圖:

二,編寫LED子程序
1, led.h頭文件

2, led.c源文件

3, 在led.c中如何使能GPIO時鐘

(1)在庫文件rcc.hk中找到”RCC_AHB1PeriphClockCmd(); “并將其復制粘貼下來

(2)點擊函數再右鍵Go To Definition………,查找入口參數

(3)查找第一個入口參數
注:assert_param的作用就是用來判斷傳遞給函數的參數是否是有效;

找到C組GPIO,將其復制粘貼到括號里

完成第一入口參數:
如果還有使能別的IO口,就用或符號”|”,后面添加

(4)查找到二個入口參數:

要使能的話就選擇ENABLE將其復制粘貼下來
完成第二個入口參數,完成GPIO的時鐘使能函數的調用:

4, 在led.c中如何配置GPIO函數:如,配置D組IO口
(1)輸入函數GPIO_Init(); ,用上面的方法來配置第一個入口函數,完成第一個入口函數如下:

(2)第二個入口參數,是個結構體

先將它復制粘貼下來,去掉*號,進行定義這個結構體:

完成第二個入口參數:

(3)用結構體來完成GPIO的配置
GPIO_InitStructure加點來進行各類型的寄存器配置:


配置GPIO_Mode寄存器,點擊GPIO_Mode,右鍵Go To Definition………查詢如下:

再點擊GPIOMode_TypeDef,查詢如下:

選擇合適的類型,將其復制粘貼下來,完成GPIO_Mode的配置:

完成GPIO的配置:

三, 編寫main函數

-
STM32
+關注
關注
2310文章
11162瀏覽量
373530 -
C語言
+關注
關注
183文章
7644瀏覽量
145643 -
跑馬燈
+關注
關注
5文章
117瀏覽量
35821
原文標題:用官方固件庫來編個運行在STM32上的跑馬燈
文章出處:【微信號:weixin21ic,微信公眾號:21ic電子網】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
代碼控制開發(fā)板LED:STM32跑馬燈試驗
STM32學習——GPIO應用之跑馬燈+蜂鳴器實驗
基于STM32的跑馬燈實驗的詳細解析
評論