|
三、實(shí)驗(yàn)內(nèi)容
1、LED點(diǎn)亮實(shí)驗(yàn):
使用GPI0的相關(guān)知識(shí),設(shè)計(jì)基于無(wú)限循環(huán)架構(gòu)的嵌入式應(yīng)用程序,點(diǎn)亮開發(fā)板上綠色LED和紅色LED;
2、流水燈實(shí)驗(yàn)一:
使用GPIO和延時(shí)循環(huán),設(shè)計(jì)基于無(wú)限循環(huán)架構(gòu)的嵌入式應(yīng)用程序,使開發(fā)板上的綠色LED和紅色LED先后輪流閃爍;
3、按鍵控制LED實(shí)驗(yàn):
使用GPI0的相關(guān)知識(shí),設(shè)計(jì)基于無(wú)限循環(huán)架構(gòu)的嵌入式應(yīng)用程序,實(shí)現(xiàn)以下功能:
1 )當(dāng)按下WK_UP按鍵時(shí),開發(fā)板上的綠色LED點(diǎn)亮;當(dāng)釋放WK_UP按鍵時(shí),開發(fā)板上的綠色LED熄滅;
2 )當(dāng)按下KEY1按鍵時(shí),開發(fā)板上的紅色LED點(diǎn)亮;當(dāng)釋放KEY1按鍵時(shí),開發(fā)板上
的紅色LED熄滅;
3 )當(dāng)同時(shí)按下WK_UP和KEYI按鍵時(shí),開發(fā)板上的紅色LED和黃色LED同時(shí)點(diǎn)亮;當(dāng)同時(shí)釋放WK_UP 和KEY1按鍵時(shí),開發(fā)板上的紅色LED和黃色LED同時(shí)熄滅。
四、實(shí)驗(yàn)硬件設(shè)計(jì)
圖1 LED燈硬件設(shè)計(jì)圖
圖2 按鍵硬件設(shè)計(jì)圖
#include "stm32f10x_gpio.h"
#include "delay.h"
#include "sys.h"
#include "led.h"
#include "key.h"
#define DEBUG1
#define DEBUG2
#define DEBUG3
int main(void)
{
LED_Init();
delay_init();
#ifdef DEBUG1
GPIO_ResetBits(GPIOA,GPIO_Pin_8); //點(diǎn)亮紅燈
#endif
#ifdef DEBUG2
GPIO_ResetBits(GPIOD,GPIO_Pin_2); //點(diǎn)亮綠燈
#endif
#ifdef DEBUG3
while(1)
{
GPIO_ResetBits(GPIOA,GPIO_Pin_8);
GPIO_SetBits(GPIOD,GPIO_Pin_2);
delay_ms(100);
GPIO_ResetBits(GPIOD,GPIO_Pin_2);
GPIO_SetBits(GPIOA,GPIO_Pin_8);
delay_ms(100);
}
#endif
}
#include "stm32f10x_gpio.h"
#include "delay.h"
#include "sys.h"
#include "led.h"
#include "key.h"
#define DEBUG1
#define DEBUG2
#define DEBUG3
int main(void)
{
LED_Init();
delay_init();
KEY_Init();
while(1)
{
if( GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0) == (uint8_t)Bit_SET
&& GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_15) == (uint8_t)Bit_RESET )
{
GPIO_ResetBits(GPIOA,GPIO_Pin_8);
GPIO_ResetBits(GPIOD,GPIO_Pin_2);
}else if (GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0) == (uint8_t)Bit_SET ){
GPIO_SetBits(GPIOA,GPIO_Pin_8);
GPIO_ResetBits(GPIOD,GPIO_Pin_2);
}else if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_15) == (uint8_t)Bit_RESET){
GPIO_SetBits(GPIOD,GPIO_Pin_2);
GPIO_ResetBits(GPIOA,GPIO_Pin_8);
}
else
{
GPIO_SetBits(GPIOA,GPIO_Pin_8);
GPIO_SetBits(GPIOD,GPIO_Pin_2);
}
delay_ms(100);
}
}
|
|