dhw5qq 发表于 2014-8-4 14:13:30

AVR串口查询如何保证数据的稳定传输

我现在打算用2个单片机进行串口通讯,主机查询接收发送查询,从机中断接收发送查询!
但是问题是我从机发送都是没有问题,主机查询接收就出现漏码,我现在用液晶屏显示数据,发现很不稳定,稍微一个字节漏掉,液晶屏的数据就全乱了。有什么好的方法让数据传输稳定一点吗?

dhw5qq 发表于 2014-8-4 14:15:54

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:52

串口收发改用中断方式

dhw5qq 发表于 2014-8-4 14:43:07

tam2907 发表于 2014-8-4 14:38
串口收发改用中断方式

不行啊,老大要求必须用查询,而且还要我不要加效验。我现在发现只要其中一个字节没有接受到,那么其他数据就会全部错,所以我想知道有什么其他方法没有?

tam2907 发表于 2014-8-4 14:51:55

dhw5qq 发表于 2014-8-4 14:43
不行啊,老大要求必须用查询,而且还要我不要加效验。我现在发现只要其中一个字节没有接受到,那么其他数 ...

通讯错误不处理,一切都白干。

steaven2000 发表于 2014-8-4 15:10:45

本帖最后由 steaven2000 于 2014-8-4 15:13 编辑

不说了。

dhw5qq 发表于 2014-8-4 15:33:37

tam2907 发表于 2014-8-4 14:51
通讯错误不处理,一切都白干。

先把功能实现,错误处理以后再说,现在就是只要一个字节接受错误,后面就全错了!
页: [1]
查看完整版本: AVR串口查询如何保证数据的稳定传输