串口接收一个字符串

2020-02-02 09:39发布

老老实实加个帧头之类的协议吧
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
7条回答
skbljs2652
2020-02-02 21:35
本帖最后由 skbljs2652 于 2012-10-23 19:36 编辑
L勇 发表于 2012-10-21 19:34
我该如何写这段代码哪,请大侠赐教,谢谢


个数不一样的话,推断就是程序这一堆太浪费时间了,导致CPU还没有读就被新的覆盖了或者没有正常检测第二个字节,知道下一次字节来的时候,跳出;这样就成了第一字节是上一次的,第二字节是下一次的。那些switch,if的语句能少用就少用,如果这是接受两个字节已经确定的话,那就在第一个接收到后,用while(!RI)什么的语句什么的等着接受第二个字节(前提是主程序不紧急)。而且得把发送方速率降低。
比如写成:
if(RI)
{
      a[0]=SBUF;
      RI=0;
      while(!RI);
      a[1]=SBUF;
      RI=0;
}
我是觉得这样能比你的switch什么的好点。但其实还是接收用中断比较好,查询的方式除非是你的发送比查询一圈的速度慢,否则很容易出问题。多字节建议是中断,

一周热门 更多>