首先,先回顧一下,控制一個led閃爍的步驟是什么
就上節而言,先要對控制led的端口進行初始化,初始化的內容包括時鐘SystemInit()和gpio_init(),gpio_init()包括很多,所以我們聲明一個結構體,然后用GPIO_InitStructure.GPIO_Pin選擇控制的端口,在上節我們選擇控制所有的led燈,即控制所有的引腳,通過查閱電路圖可以知道是哪些引腳,再通過查閱庫函數中文手冊知道GPIO_Pin_ALL即是控制所有引腳,而選擇控制引腳則用 | 來表示(|一定得切換成英文),隨后我們設置傳輸速率,輸出方式,并初始化gpio,做完這一切,成功了一半。下一步即是對led進行控制,我們明白,GPIO_SetBits,GPIO_ResetBits 這兩個函數是控制高低電平的我們只需要再聲明一個顯示函數led_display,包含這GPIO_SetBits,GPIO_ResetBits,并且加上延遲函數,最后再在主函數main.c寫入函數則會實現閃爍燈的效果。所有函數的用法參考stm32固件庫中文手冊
如果要控制流水燈,那么很簡單,我只需要改變控制引腳函數GPIO_InitStructure.GPIO_Pin以及在顯示函數led_display中多添加幾行相應引腳輸出高低電平命令GPIO_SetBits,GPIO_ResetBits即可。最重要的一點,我們在led.c中寫的任何函數體(除開庫函數)都要先在led.h中先進行聲明。是不是很簡單。
改的幾點東西東西如圖
1.引腳設置
2.流水燈
3.led.h下的聲明和定義
4.主函數
int main()
{
LED_Init();
while(1)
{
led_display();
}
}
但是有一點我存在疑惑,當我使用0.1來控制燈的亮滅時,燈不閃爍或者很暗,亮度弱,但是在仿真的時候,燈是按照程序來進行亮滅變化的
只貼上led.c程序,在led.h上已寫了相關定義
編輯:hfy
-
流水燈
+關注
關注
21文章
433瀏覽量
60528 -
控制LED燈
+關注
關注
0文章
5瀏覽量
1427
發布評論請先 登錄
基于單片機的LED流水燈有哪些應用
LED流水燈設計
LED流水燈功能實現
如何去實現一種STM32F103點亮LED流水燈的設計
LED流水燈與變量的移位教程詳細說明

LED點光源的特性_LED點光源的優勢
C51單片機實驗——LED流水燈

評論