两个终端通过485总线进行通讯,终端通过模拟串口与PC机通讯。在测试完485总线与模拟串口通讯均正常的情况下进行联合调试。
1. 首先,485总线的波特率设为9600bps,模拟串口波特率设为4800bps,工作正常。
![](http://control.cublog.cn/fileicon/rar.gif) |
文件: |
485_20090421_9600接模拟串口正常.rar |
大小: |
11KB |
下载: |
下载 | |
2. 然后,把485总线的波特率改为4800bps,即把"TH1=TL1=0xFD"改为"TH1=TL1=0xFA",两终端间通讯不正常。不知是哪里出的问题,想到可能是485总线有特殊规定,但上网查,结果是485总线理想的工作速率为4800bps。后来在规范按键的程序后,即检测到按键为低电平后,等待600us,然后一直等待按键释放(高电平),问题就解决了。分析原因可能是: 在4800bps时,由于不断发送数据到另一终端,SBUF的上一数据还没发送完,新的又来填充,另一终端接收数据就出现错误码。而在9600bps时,数据传输速率较快,SBUF中的数据能在新的数据到来时及时发送出去,所以工作正常。
![](http://control.cublog.cn/fileicon/rar.gif) |
文件: |
485_20090421_4800接模拟串口正常.rar |
大小: |
11KB |
下载: |
下载 | |
阅读(2056) | 评论(0) | 转发(0) |