|
1、LED 點(diǎn)亮實(shí)驗(yàn):使用 GPI0 的相關(guān)知識,設(shè)計基于無限循環(huán)架構(gòu)的嵌入式應(yīng)用程序,點(diǎn)亮開發(fā)板上綠色 LED 和紅色 LED;
2、流水燈實(shí)驗(yàn)一:使用 GPIO 和延時循環(huán),設(shè)計基于無限循環(huán)架構(gòu)的嵌入式應(yīng)用程序,使開發(fā)板上的綠色 LED 和紅色 LED 先后輪流閃爍;
3、按鍵控制 LED 實(shí)驗(yàn):使用 GPI0 的相關(guān)知識,設(shè)計基于無限循環(huán)架構(gòu)的嵌入式應(yīng)用程序,實(shí)現(xiàn)以下功能:
(1 )當(dāng)按下 WK_UP 按鍵時,開發(fā)板上的綠色 LED 點(diǎn)亮;當(dāng)釋放 WK_UP 按鍵時,開發(fā)板上的綠色 LED 熄滅;
(2 )當(dāng)按下 KEY1 按鍵時,開發(fā)板上的紅色 LED 點(diǎn)亮;當(dāng)釋放 KEY1 按鍵時,開發(fā)板上的紅色 LED 熄滅;
(3 )當(dāng)按下 KEY0 按鍵時,開發(fā)板上的紅色 LED 和綠色 LED 同時閃亮;當(dāng)再次按下 KEY0 按鍵時,開發(fā)板上的紅色 LED 和綠色 LED 同時熄滅。
單片機(jī)源程序如下:
- #include "stm32f10x.h"
- #include "delay.h"
- #include "led.h"
- #include "key.h"
-
- u8 KeyNum;
-
- int main(void)
- {
- int a=0;
- LED_Init();
- KEY_Init();
- delay_init();
- LED_xx();
- while (1)
- {
- //LED_ss();//流水燈
- KeyNum = KEY_Scan();
- if (KeyNum == KEY0_PRES)
- {
- a++;
- if(a>2)a=0;
- }
- switch(a)
- {
- case 1 : LED_ss1(); break;
- case 2 : LED_xx();break;
- }
- if(KEY1==0)
- {
- while(KEY1==0)
- {
- GPIO_ResetBits(GPIOA, LED1_Pin);//點(diǎn)亮LED1
- }
- GPIO_SetBits (GPIOA, LED1_Pin);//熄滅LED1
- }
- if(WK_UP==1)
- {
- while(WK_UP==1)
- {
- GPIO_ResetBits(GPIOD, LED2_Pin);//點(diǎn)亮LED2
- }
- GPIO_SetBits (GPIOD, LED2_Pin);//熄滅LED2
- }
- }
- }
復(fù)制代碼
程序下載:
程序.7z
(215.47 KB, 下載次數(shù): 2)
2023-10-20 22:19 上傳
點(diǎn)擊文件名下載附件
|
|