AVR串口查询如何保证数据的稳定传输
我现在打算用2个单片机进行串口通讯,主机查询接收发送查询,从机中断接收发送查询!但是问题是我从机发送都是没有问题,主机查询接收就出现漏码,我现在用液晶屏显示数据,发现很不稳定,稍微一个字节漏掉,液晶屏的数据就全乱了。有什么好的方法让数据传输稳定一点吗? u16 uart_fun(u8 addr,u16 com)
{
u8 t1=0,t2=0,t3=0;
u8 i=0;;
send_char(addr);
t=get_char();
if(invert(t)==addr)
{
send_char(com>>8); //发高字节
t=get_char();
send_char(com); //发高字节
t=get_char(); //等从机返回高字节数据
send_char(0x00);
}
return (t<<8)|t;
}
我是用这个函数来调试的,发现主机如果接收到的地址不对的话,返回的结果就错了! 串口收发改用中断方式 tam2907 发表于 2014-8-4 14:38
串口收发改用中断方式
不行啊,老大要求必须用查询,而且还要我不要加效验。我现在发现只要其中一个字节没有接受到,那么其他数据就会全部错,所以我想知道有什么其他方法没有?
dhw5qq 发表于 2014-8-4 14:43
不行啊,老大要求必须用查询,而且还要我不要加效验。我现在发现只要其中一个字节没有接受到,那么其他数 ...
通讯错误不处理,一切都白干。
本帖最后由 steaven2000 于 2014-8-4 15:13 编辑
不说了。 tam2907 发表于 2014-8-4 14:51
通讯错误不处理,一切都白干。
先把功能实现,错误处理以后再说,现在就是只要一个字节接受错误,后面就全错了!
页:
[1]