如题,使用串口控制led,输入亮则led1亮 输入灭则led1灭,但是 我想实现闪烁,就调用了while函数,但是调用while函数过后没办法做到随时切换亮灭,就是没办法随时跳出while函数,不使用while 函数则led只能亮灭一次,求助各位大神如何实现模式的随时切换,实现持续闪烁 亮 灭 可以自由切换,一下为我的main程序 程序只能亮灭一次
#include "led.h"
#include "delay.h"
#include "sys.h"
#include "usart.h"
int main(void)
{
u8 t;
u8 len;
u16 times=0;
delay_init();
NVIC_Configuration();
uart_init(9600);
LED_Init();
while(1)
{
if(USART_RX_STA&0x8000)
{
len=USART_RX_STA&0x3fff;
printf("
您发送的消息为:
");
for(t=0;t<len;t++)
{
USART1->DR=USART_RX_BUF[t];
while((USART1->SR&0X40)==0);
}
printf("
");
USART_RX_STA=0;
}
{if(!(strcmp(USART_RX_BUF,"LED1=亮")))
{
LED1=0;
memset(USART_RX_BUF,0,strlen(USART_RX_BUF));
}
else if(!(strcmp(USART_RX_BUF,"LED1=灭")))
{
LED1=1;
memset(USART_RX_BUF,0,strlen(USART_RX_BUF));
}
else if(!(strcmp(USART_RX_BUF,"LED1=闪烁")))
{LED0=1;
LED1=0;
delay_ms(300);
LED0=0;
LED1=1;
delay_ms(3000);
memset(USART_RX_BUF,0,strlen(USART_RX_BUF));
}
else
{
times++;
if(times%200==0)printf("请输入数据并以回车键结束");
if(times%30==0)LED0=!LED0;
delay_ms(10);
}
}
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
这个已经试过 不能从闪烁切换到别的模式了
一周热门 更多>