modbus总线协议(四)FreeModbus开源协议栈移植

一、介绍
FreeModbus是一个开源modbus协议栈,里面包含了modbus rtu、ascii和tcp三种传输帧,功能齐全;本身是GPL协议,允许商用,实在懒得写协议栈可以用这个

二、源码下载
官网
https://www.embedded-solutions.at/en/freemodbus-downloads/
下载链接
https://github.com/cwalter-at/freemodbus
在这里插入图片描述

三、目录介绍
1、demo里面是不同平台的示例程序,包括接口
在这里插入图片描述

2、doc帮助文档
在这里插入图片描述

3、modbus里面是modbus的实现
在这里插入图片描述

4、tool一个windows的工具

在这里插入图片描述
5、modbus目录
在这里插入图片描述

在这里插入图片描述

四、移植
1、添加freemodbus\modbus所有文件到工程
2、在freemodbus\demo找一个相似的平台的目录添加到工程,这里以AVR为例
3、修改接口
freemodbus\demo\AVR\port有4个文件
在这里插入图片描述
(1)port.h
添加平台头文件
修改进入临界区和出临界区,改成总中断的关闭和打开

(2)portserial.c
实现串口相关底层函数
vMBPortSerialEnable()使能串口函数
xMBPortSerialInit()串口进行初始化由eMBRTUInit函数进行调用。
xMBPortSerialPutByte()串口发送函数
xMBPortSerialGetByte()串口接收函数
USART1_IRQHandler()串口中断函数

(3)porttimer.c
xMBPortTimersInit定时器初始化
vMBPortTimersEnable( )定时器使能
vMBPortTimersDisable( )定时器使能取消
TIM2_IRQHandler(void)定时器中断

(4)portevent.c
xMBPortEventInit()初始化事件队列
xMBPortEventPost()发送一个事件
xMBPortEventGet()读取一个事件

4、编写主函数文件,或者直接使用demo.c
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值