串口接收一个字符串

2020-02-02 09:39发布

老老实实加个帧头之类的协议吧
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
hameyou
1楼-- · 2020-02-02 11:33
找一下IO模拟串口看看
devcang
2楼-- · 2020-02-02 13:24
 精彩回答 2  元偷偷看……
L勇
3楼-- · 2020-02-02 16:09
L勇 发表于 2012-10-19 20:58
收到的是乱码

检查一下晶振频率,看看算出来的波特率,然后看看两者收发的波特率一致不~~
skbljs2652
4楼-- · 2020-02-02 17:15
逻辑不对吧,你这个程序够烂的啊。
L勇
5楼-- · 2020-02-02 17:35
简单点 研究下MODBUS-RTU就不错  用于RS23。。。。。。。。
skbljs2652
6楼-- · 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什么的好点。但其实还是接收用中断比较好,查询的方式除非是你的发送比查询一圈的速度慢,否则很容易出问题。多字节建议是中断,

一周热门 更多>