我們用C語言來再學習STM32,以加深理解,并且應用相關資料和官方固件標準庫。因此,我們來編寫一個跑馬燈實驗
先前準備
一, 開發環境
安裝MDK5,并且導入STM32官方標準庫。
STM32官方標準庫名稱:stm32f4_dsp_stdperiph_lib
這個STM32官方固件標準庫以前是可以在ST官網下載,現在好像在官網上找不到了。
二,相關應用資料:STM32F4XX中文參考手冊
相關函數
一,因為要使用GPIO,在使用GPIO時需要先使能IO口時鐘。
使能IO時鐘就要使用到RCC寄存器。RCC寄存器相關知識,見中文參考手冊6.3章節。
調用函數: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);
程序編寫
一,程序的實現:
使開發板上的LED1,LED2,LED3,LED4循環點亮,實現流水燈效果。
硬件電路圖:
二,編寫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
+關注
關注
2257文章
10822瀏覽量
352419 -
C語言
+關注
關注
180文章
7575瀏覽量
133991 -
跑馬燈
+關注
關注
5文章
117瀏覽量
34664
原文標題:用官方固件庫來編個運行在STM32上的跑馬燈
文章出處:【微信號:weixin21ic,微信公眾號:21ic電子網】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論