初级会员

- 积分
- 108
- 金钱
- 108
- 注册时间
- 2019-7-5
- 在线时间
- 15 小时
|
5金钱
我是小白最近学到原子老师讲的按键控制led,我先自己想了一下:
#include<stm32f10x.h>
#include<sys.h>
#include<delay.h>
#include<LED.h>
#include<KEY.h>
void delayms(u16 ValMS)
{
u16 uiVal,ujVal;
for(uiVal=0;uiVal<ValMS;uiVal++)
for(ujVal=0;ujVal<113;ujVal++);
}
int main()
{
LED_Init();
KEY_Init();
LED0=1;
while(1)
{
if(KEY0==0)
{
delay_ms(10);//延时消抖
if(KEY0==0)
{
LED0=!LED0;
while(!KEY0);取反
}
}
}
}
没有delay_ms(10)时,按键不稳,但是加上之后直接整个在mini板上没用,后来我自己想了个本办法:
#include<stm32f10x.h>
#include<sys.h>
#include<delay.h>
#include<LED.h>
#include<KEY.h>
void delayms(u16 ValMS)//自己定的延时函数
{
u16 uiVal,ujVal;
for(uiVal=0;uiVal<ValMS;uiVal++)
for(ujVal=0;ujVal<113;ujVal++);
}
int main()
{
LED_Init();
KEY_Init();
LED0=1;
while(1)
{
if(KEY0==0)
{
delayms(500);//延时
if(KEY0==0)
{
LED0=!LED0;//取反
while(!KEY0);
}
}
}
}
这个函数就有用,真的想了挺久的,求帮助。
|
|