上位机与单片机收发数据,rs485做通讯
RS485做的串口通讯,用的是查询方式收发数据,为什么收的数据前两位总是00,是不是上位机给下位机发数据之前总有什么中断信号之类的,而单片机都当成数据接收了? 通讯 单片机??上位机
[解决办法]
你描述的现象太简单,没法判断问题。建议你:
电脑和单片机分别先自收自发,看看是否正常
电脑和单片机之间换成RS232,看看通讯是否正常。
用485,示波器抓波形,看看 00 这个是不是在传输中出现了。
这样至少先分析出问题在电脑端还是单片机端了。
[解决办法]
你检查一下上位机的协议。
在 UART 协议中,有一种 Break 帧的东西,用于使接收器初始化。它是起始位后 8 或 9 个 bit 0,再加上停止位也是 0。如果你在单片机 UART 模块不能识别 Break 帧,就有可能将其当作一个字符 0。