2020-02-02 09:39发布
L勇 发表于 2012-10-19 20:58 收到的是乱码
L勇 发表于 2012-10-21 19:34 我该如何写这段代码哪,请大侠赐教,谢谢
最多设置5个标签!
检查一下晶振频率,看看算出来的波特率,然后看看两者收发的波特率一致不~~
个数不一样的话,推断就是程序这一堆太浪费时间了,导致CPU还没有读就被新的覆盖了或者没有正常检测第二个字节,知道下一次字节来的时候,跳出;这样就成了第一字节是上一次的,第二字节是下一次的。那些switch,if的语句能少用就少用,如果这是接受两个字节已经确定的话,那就在第一个接收到后,用while(!RI)什么的语句什么的等着接受第二个字节(前提是主程序不紧急)。而且得把发送方速率降低。
比如写成:
if(RI)
{
a[0]=SBUF;
RI=0;
while(!RI);
a[1]=SBUF;
RI=0;
}
我是觉得这样能比你的switch什么的好点。但其实还是接收用中断比较好,查询的方式除非是你的发送比查询一圈的速度慢,否则很容易出问题。多字节建议是中断,
一周热门 更多>