AVR单片机串口通信问题请教!!!!!

2019-07-15 18:16发布

问题描述:Atmega64作为主机----使用片内8M时钟
Atmega16作为从机----使用片外8M晶振


从主机向从机发送指令(5字节16进制),采用500K速率。发现:数据接收时对时错,用示波器抓波形,发现两种情况下主机发送给从机的波形是完全一致的。


分析是由于时钟同步造成的,但是单片机串口采用的是异步通信方式,哪位大神能帮忙分析下????PS:由于硬件限制,主机端不好加片外的时钟。而且个人理解,即使加了也需要考虑时钟同源的影响吧。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
阿信509
1楼-- · 2019-07-15 18:48
片内时钟还真没用过,片外的应该没这种问题
nilwade
2楼-- · 2019-07-15 23:51
阿信509 发表于 2014-10-23 17:06
片内时钟还真没用过,片外的应该没这种问题

这是最初设计的缺陷,一般而言500K速率对于单片机而言,采用片内时钟是很不可靠的。
就是不能理解,为什么对于相同的波形,接收端有时能正确接收,有时又是错的?

原先在一个手册上看到USART的接收是通过采样判决来实现的,从这一方面考虑,那就是接收端应该还存在与发送端的一个同步问题??
阿信509
3楼-- · 2019-07-16 03:30
波特率弄低点儿试过没
nilwade
4楼-- · 2019-07-16 07:39
 精彩回答 2  元偷偷看……

一周热门 更多>