evanl 发表于 2007-11-13 22:39:59

关于USART的接口问题,RX接收TX发送数据,如果把RX接收的数据断掉,单片机就死机了,我该怎

前一段时间,我发贴请教大家“2个AVR单片机之间的通信,一个发送一串字符,另一个怎么接受并传到PC? “http://www.ouravr.com/bbs/bbs_content.jsp?bbs_sn=830889&bbs_page_no=1&search_mode=3&search_text=evanl&bbs_id=9999”已经做出来了。非常感谢大家的帮助。不过现在我还有一个新的问题。

    有一个感温感光采集器,将其采集的数据发送到我做的AVR单片机ATmega162的PD0(RX0)上。然后再通过ATmega162 PD1(TX0)发送出去。同时也将ATmega162接收到的数据一起发送出去。接收到数据如“T+20.0B0022”,还有2个换行回车字符,一个14个。我现在已经把这些都做出来了,而且发送出的数据也完整正确。

    但现在又有了新问题了,如果把感温感光采集器拔掉,ATmega162就会进入一个死循环。

    因为当时为了保证从感温感光采集器接收的数据正确,我加了一个检测语句,如果检测到“T”字符就可是接收,检测不到就等待,如果不加这个检测语句的话,有时接收的数据会乱掉的,所以把感温感光采集器拔掉后,ATmega162检测不到"T"就陷在在里死循环了。

   我本来用中断的,不过我发现如果用了USART的中断,发送的数据就是乱的。已经搞了很久,一直没有解决出这个问题,请教诸位大侠,应该怎么来解决这个问题,谢谢大家!

machao 发表于 2007-11-13 23:05:54

建议你购买我的新书,将第3篇中的USART的应用学习一下。其实其它部分的设计方法和理念也会对你有帮助的。磨刀不误砍材工的。

evanl 发表于 2007-11-14 18:34:32

谢谢马老师,已经买了马老师的新书了。
不过能否对我这个问题指点一二,给一个思路,非常感谢!

machao 发表于 2007-11-14 19:08:47

书里面有一些例子,请参考后再考虑你的设计有何不足吧。
页: [1]
查看完整版本: 关于USART的接口问题,RX接收TX发送数据,如果把RX接收的数据断掉,单片机就死机了,我该怎