问题描述
stm32f407与传感器通过485总线进行通信,stm32向传感器发送索要数据的指令,传感器本应传回的数据为0x01 0x03 0x02 0x04 0x7E 0x3A 0xA4
,实际接收到的数据为0x40 0x20 0x20 0x90 0xE9 0xA4 0x00
。像是被485芯片修改过一样。485芯片部分电路图如下:
以上是正点原子开发板的电路图,与本文分析的案例电路图类似。
问题排查
排查方向1
因为每次stm32发数据前要拉高RE引脚,发完数据再拉低RE引脚,所以开始怀疑是不是发送完数据RE引脚拉的太慢了,导致接收的数据不完整。发送代码如下:
RS485_RST(1);
HAL_UART_Transmit(&uart_handle, (