近期需要在STM32上实现Modbus协议的传输,传输的具体接口使用的是RS485。
接下来将自己的调试过程记录如下,首先关于RS-485的介绍如下:
1)何为RS485通信
RS-485通信属于半双工通信,相较于RS232,RS-485通信接收和发送需要额外增加一个控制引脚。
RS-485采用平衡发送和差分接收,因此具有抑制共模干扰的能力。RS-485采用半双工工作方式,任何时候只能有一点处于发送状态,因此,发送电路须由使能信号加以控制。RS-485用于多点互连时非常方便,可以省掉许多信号线。
应用RS-485可以联网构成分布式系统,其允许最多并联32台驱动器和32台接收器。在RS232或RS485设备联成的设备网中,如果设备数量超过2台,就必须使用RS485做通讯介质,RS485网的设备间要想互通信息只有通过“主(Master)”设备中转才能实现,这个主设备通常是PC,而这种设备网中只允许存在一个主设备,其余全部是从(Slave)设备。
RS-485 接口具有良好的抗噪声干扰性、长的传输距离和多站能力等。上述优点就使其成为首选的串行接口。因为工业RS485 通讯接口组成的半双工网络,一般只需二根连线,所以工业RS485 通讯接口均采用屏蔽双绞线传输。
2)硬件电路
3)实验内容
通过电脑上位机向STM32发送一个字符,STM32接收到数据,并回传到电脑上位机
4)源代码
所包含的核心文件主要RS485.C RS485.H main.c
4