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