新手上路
- 积分
- 39
- 金钱
- 39
- 注册时间
- 2020-4-8
- 在线时间
- 7 小时
|
1金钱
主函数:
#include "delay.h"
//#include "sys.h"
#include "usart.h"
#include "timer.h"
#include "wave.h"
#include "Init.h"
//#include "xfsuart.h"
#include "key.h"
#include "wave_yuyin.h"
#include "led.h"
#include "BEEP.h"
int main(void)
{
vu8 key=0;
delay_init();
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
uart_init(115200);
LED_Init();
Timer_SRD_Init(5000,7199);
Wave_SRD_Init();
delay_init();
LED_Init();
BEEP_Init();
KEY_Init();
LED0=0;
while(1)
{
delay_ms(200);
key=KEY_Scan(0);
if(key == 3)
{
key = 0;
delay_ms(200);
LED0=1;
while(1)
{
wave_yuyin();
delay_ms(20);
key=KEY_Scan(0);
switch(key)
{
case 3:
BEEP=!BEEP;
case 2:
break;
case 1:
break;
}
if(key == 2)
{
key = 0;
LED1=1;
LED0=0;
break;
}
if(key == 2)
{
delay_ms(20);
if(key == 0)
{
key = 0;
break;
}
}
}
}
}
}
按键程序:
#include "stm32f10x.h"
#include "key.h"
#include "sys.h"
#include "delay.h"
void KEY_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOE,ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4|GPIO_Pin_3;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_Init(GPIOE, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;
GPIO_Init(GPIOA, &GPIO_InitStructure);
}
u8 KEY_Scan(u8 mode)
{
static u8 key_up=1;
if(mode)key_up=1;
if(key_up&&(KEY0==0||KEY1==0||WK_UP==1))
{
delay_ms(10);
key_up=0;
if(KEY0==0)return KEY0_PRES;
else if(KEY1==0)return KEY1_PRES;
else if(WK_UP==1)return WKUP_PRES;
}else if(KEY0==1&&KEY1==1&&WK_UP==0)key_up=1;
return 0;
}
|
|