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

LED點(diǎn)光源的特性_LED點(diǎn)光源的優(yōu)勢(shì)
單片機(jī)(AT89C51)按鈕控制LED燈實(shí)現(xiàn)流水燈,閃爍流水燈

C51單片機(jī)實(shí)驗(yàn)——LED流水燈

評(píng)論