對于單片機編程而言,點亮LED是單片機編程的入門操作。
對于STM32,本人習慣使用寄存器操作,所以本文將以KEIL4.12作為開發環境,以寄存器操作試驗為編程思路講解。
先創建一個工程名為LED_Project,在keil的右側的工程窗口,選中項目,鼠標右手單擊,出現如下圖所示
選擇Device項,選擇對應型號,
在工程中添加對應的寄存器版本的支持文件,因只需要LED相關的寄存器操作,則只需要RCC,GPIO的固件庫文件,
創建main.c文件,并包含#include<stm32f10x_lib.h>頭文件
首先我們假設當PA4引腳為高電平時,LED燈亮,為低電平時,LED等滅,
設置LED的宏定義,如下:
#defineLED_ONGPIOA->ODR|=(1<<4);
#defineLED_OFFGPIOA->ODR&=~(1<<4);
定義一個LED的GPIO初始化函數,
如上圖所示,
RCC->APB2ENR|=1<<2;是PA端口的時鐘使能
我們使用PA4作為LED輸出控制端口,配置PA4作為推挽輸
設置led燈1秒鐘亮滅一次,俗稱呼吸燈函數如下:
設置LED燈亮滅時間漸變,函數如下圖所示
如上圖所示,函數中使用for循環,完成一個led閃爍頻率從最快10ms間隔閃爍一次,漸漸增大時間,最后到1S閃爍一次,再逐漸減小間隔時間,閃爍頻率加快。
LED閃爍的實現效果還可以進行設計,大家可以自由的進行發揮代碼的魅力和能力
以上是問題的粗略解答,難免會有遺漏
希望大家留言,點贊,轉發,關注