Modbus_RTU 移植<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
作者:iControl
首先没接触过通信协议的朋友会问Modbus是什么,我就简单的说下了。Modbus不是硬件,而是基于硬件的总线协议。至于为什么要用Modbus,Modbus的优缺点这些官方的资料我就不解释了(请朋友们自己百度)。这里我给大家介绍的是如何移植Modbus。
Modbus的种类很多,像是Modbus,NModbus,FreeModbus等等,其实都差不多,只不过有些搭载的平台不一样。
这里给大家介绍的是比较简单的Freemodbus ,因为我是他们的会员,所以有比较完整的资料。 http://www.freemodbus.org/
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是单片机的中断配置,不同类型的单片机都要在这里更改自己的中断进入和退出函数。
具体的代码录入就不详细说明了,源码中写得很清晰,有不明白的可以交流。其他模式的移植都差不多 主要就是这三种文件的修改。
dwwzl 2016-2-16 16:43
dwwzl 2016-2-16 16:42
用户377235 2015-11-28 00:15
用户377235 2014-6-7 11:59
哥们,我毕设做这个,定时器程序都编写好了,可是一旦串口和modbus slave软件相连,定时器就好像没反应,不知道怎么回事啊?