串口接受中断,在中断服务函数中写的控制等闪烁次数的代码。闪烁次数由串口接受的数据决定。为何运行时闪烁次数总是不对

2019-10-14 23:11发布

void USART1_IRQHandler(void)                        //′®¿ú1ÖD¶Ï·tÎñ3ìDò
        {
        u16 Res,i;
        if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)  //½óêÕÖD¶Ï(½óêÕμ½μÄêy¾Y±ØDëêÇ0x0d 0x0a½áÎ2)
                {
                Res =USART_ReceiveData(USART1);        //¶á衽óêÕμ½μÄêy¾Y                 
    }
  for(i=0;i<Res;i++)
        {
                USART_SendData(USART1,Res);
                LED0=!LED0;
                delay_ms(300);
                LED0=!LED0;
                delay_ms(300);
        }               
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
李广321
1楼-- · 2019-10-15 22:10
氢氦李铍硼 发表于 2017-2-25 21:25
串口中断函数最好不要这么写,中断时间太长了,很容易出现各种各样的问题。你可以把Res设置为全局变量,根 ...

试了一下全局变量,返回串口调试助手的值是正确的,但用的时候不对
李广321
2楼-- · 2019-10-15 22:42
 精彩回答 2  元偷偷看……
李广321
3楼-- · 2019-10-16 00:15
氢氦李铍硼 发表于 2017-2-25 22:42
你用上位机往下位机发值的时候是字符格式还是数字格式

十分感谢,这个错误真的是改了好多次程序
氢氦李铍硼
4楼-- · 2019-10-16 02:14
李广321 发表于 2017-2-25 23:07
十分感谢,这个错误真的是改了好多次程序

建议你了解一下上位机软件的编写,我经常用c#编写上位机软件协助调试下位机软件,上位机采集数据显示比下位机灵活,我之前写的一些东西你可以参考一下
http://tieba.baidu.com/p/4165655 ... p;cid=0#79198155026
http://bbs.elecfans.com/forum.ph ... d=540144&extra=
李广321
5楼-- · 2019-10-16 08:14
氢氦李铍硼 发表于 2017-2-25 23:22
建议你了解一下上位机软件的编写,我经常用c#编写上位机软件协助调试下位机软件,上位机采集数据显示比下 ...

好的,谢谢啦。我看一下

一周热门 更多>