普中STM32开发板带您进入ARM世界RS485通信实验普中STM32开发板带您进入ARM世界本讲主要内容1.RS485通信介绍2.硬件电路3.编写RS485通信控制程序普中STM32开发板带您进入ARM世界1.RS485通信介绍典型的串口通信标准有RS232和RS485,RS232是全双工点对点的通信,而RS485是半双工通信(2线制),可以一点对多点进行组网,而且RS485是用缆线两端的电压差值来表示传递信号,这与RS232电气特性大不一样。RS485仅仅规定了接受端和发送端的电气特性,并没有规定或推荐任何数据协议,因此RS485的协议层可以和RS232一样。普中STM32开发板带您进入ARM世界RS485的特点:(1)接口电平低,不易损坏芯片。RS485的电气特性:逻辑“1”以两线间的电压差为+(2~6)V表示;逻辑“0”以两线间的电压差为-(2~6)V表示。接口信号电平比RS232降低了,不易损坏接口电路的芯片,且该电平与TTL电平兼容,可方便与TTL电路连接。(2)传输速率高。10米时,RS485的数据最高传输速率可达35Mbps,在1200m时,传输速度可达100Kbps。(3)抗干扰能力强。RS485接口是采用平衡驱动器和差分接收器的组合,抗共模干扰能力增强,即抗噪声干扰性好。(4)传输距离远,支持节点多。RS485总线最长可以传输1200m以上(速率≤100Kbps)一般最大支持32个节点,如果使用特制的485芯片,可以达到128个或者256个节点,最大的可以支持到400个节点。普中STM32开发板带您进入ARM世界RS485推荐使用在点对点,线型,总线型网络中,不能使用在星型和环型网络。理想情况下RS485需要2个终端匹配电阻,其阻值要求等于传输电缆的特性阻抗(一般为120Ω)。没有特性阻抗的话,当所有的设备都静止或者没有能量的时候就会产生噪声,而且线移需要双端的电压差。没有接电阻的话,会使得较快速的发送端产生多个数据信号的边缘,导致数据传输出错。普中STM32开发板带您进入ARM世界RS485推荐的连接方式如图普中STM32开发板带您进入ARM世界我们开发板采用SP3485作为收发器,该芯片支持3.3V供电,最大传输速度可达10Mbps,支持多达32个节点,并且有输出短路保护。该芯片的框图如图普中STM32开发板带您进入ARM世界RS232/RS485转换器如图普中STM32开发板带您进入ARM世界2.硬件电路本实验使用到硬件资源如下:(1)D1指示灯(2)串口2(3)RS485收发器:SP3485D1指示灯电路在前面章节都介绍过,这里就不多说,下面我们来看下开发板上RS485模块电路,如图。普中STM32开发板带您进入ARM世界普中STM32开发板带您进入ARM世界3.编写RS485通信控制程序本章所要实现的功能是:通过STM32F1的串口2将PC机发送过来的数据原封不动的返回给PC机串口,同时D1指示灯不断闪烁,提示系统正常运行。程序框架如下:(1)初始化串口2,并使能串口接收中断等(2)编写串口2中断函数(将接收到的数据返回出去)(3)编写主函数