Modbus_RTU 移植 作者:iControl 首先没接触过通信协议的朋友会问Modbus是什么,我就简单的说下了。Modbus不是硬件,而是基于硬件的总线协议。至于为什么要用Modbus,Modbus的优缺点这些官方的资料我就不解释了(请朋友们自己百度)。这里我给大家介绍的是如何移植Modbus。 Modbus的种类很多,像是Modbus,NModbus,FreeModbus等等,其实都差不多,只不过有些搭载的平台不一样。 这里给大家介绍的是比较简单的Freemodbus ,因为我是他们的会员,所以有比较完整的资料。 http://www./ FreeModbus 分主站和子站两类,主站和子站的模式又有RTU,TCP,ASC模式。 首先介绍下FreeModbus_RTU子站的移植方法,目前的最高版本是:mbslave-v2.9.5 我的硬件平台是STM32。 移植Modbus需要用到单片机的一个串口和一个定时器,这里使用的是USART1(USART2)和TIM3。 新建文件夹包含文件如图,需要修改的C文件是mbportserial.c和mbporttime.c和mbportother.c。 mbportserial.c是和串口参数配置有关的文件,包含串口初始化,中断向量配置。 Mbporttime.c 是和定时器参数配置有关文件,包含定时器初始化和中断配置。 Mbportother.c是单片机的中断配置,不同类型的单片机都要在这里更改自己的中断进入和退出函数。 具体的代码录入就不详细说明了,源码中写得很清晰,有不明白的可以交流。其他模式的移植都差不多 主要就是这三种文件的修改。
|
|