源码 移植_FreeModbus移植总结

本文详细介绍了将FreeModbus协议栈移植到STM32F103微控制器的过程,包括硬件功能如USART和TIMER的初始化,以及在移植中遇到的串口中断选择、状态机寄存器处理等问题。同时,指出了源码中的一个错误,并给出了修复建议。最后,提供了基于GD32F330C8T6的移植完成的Demo链接。
摘要由CSDN通过智能技术生成

modbus是一项工业上经常用到的通讯协议,而freemodbus是一款开源的从机协议栈。关于它的移植网上已经有了很多的文章,但是大多都只是针对其中部分问题的表述。本文将会把自己在移植freemodbus过程中遇到的问题以及freemodbus的源码分析尽量表述清楚。

(由于源码分析部分在工作用的电脑上,这部分后续补上)

关于移植:

本次移植使用的片子是stm32f103的片子,编译环境喂keil5.23

freemodbus源码GitHub链接:

cwalter-at/freemodbus​github.com
21e26631236e2ec7a0ccb08e3e440373.png

首先移植需要有大致两方面工作:1、相关硬件功能的编写;2、freemodbus底层操作寄存器(线圈)的函数。

关于硬件功能主要包括usart的初始化,发送/接收状态设置,串口中断函数等;timer定时器的初始化,使能,失能以及定时器中断等。其中需注意的是在串口中断及定时器中断中加入对应的处理函数,通知状态机进行相应处理。

定时器方面基本没有什么问题,确定还要使用的定时器以及编写好对应的函数没什么问题可以正常使用。但是在串口移植的时候需要注意,自己使用的串口发送中断是txe还是tc。使用txe中断需要预先发送一个字节触发串口发送中断,而是用tc中断需要在中断中添加延时否则会导致最后一个字节发送不出去的问题。关于这两个问题的分析及解决方法:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值