草庐IT

freeModbus

全部标签

【freeModbus】STM32之HAL库移植笔记

    工作主要是传感器相关,常与之打交道的协议,莫过于MODBUS了。之前一直都是手撸相关功能码,所以也就没了解过类似freeModbus之类的,现在需要使用HAL库开发,且配置Modbus从机协议为全栈,最近趁着空余时间,学习一番。(网上说好的移植简单快捷,结果照着各种教程配置,磕磕碰碰了小一周才搞定,在此记录下详细教程)一、下载压缩包官网下载地址:About-EmbeddedExperts(embedded-experts.at)注:下拉页面,然后点击右下角的Downloads,然后点击红框选中,下载; 二、移植准备    解压后,我们会看到几个文件夹,但是对我们当前移植来说,有用的是m

关于STM32F4和GD32F4以太网,LAN8720+lwip+freemodbus,实现modbus tcp

关于STM32F4和GD32F4以太网,LAN8720+lwip+freemodbus这里使用了大佬小灰灰搞电子的代码,文章看STM32F407+LAN8720移植Lwip和freeModbus实现MODBUSTCP代码看STM32F407+LAN8720+LWIP移植freemodbusTCP.zip他的代码是基于正点原子F407的板子开发的,如果是别的板子,需要修改引脚小灰灰的代码里,没有对02功能码的处理函数进行完善,在port.c中,修改eMBRegDiscreteCB函数如下:/*****************************************************

运动控制器设计——基于FreeModbus在STM32F4平台实现ModbusTCP和ModbusRTU

本文笔者最近的项目是设计一款运动控制器,MCU使用的是STM32F429,要求是通过ModbusTCP协议实现与示教器通讯,并通过ModbusRTU实现与触摸屏通讯。本文将介绍在STM32F4上实现ModbusTCP和ModbusRTU通讯的过程。笔者才疏学浅,如有错误还请指正。一、FreeModbus介绍1.1 FreeModbus的获取Modbus协议是典型的主-从通讯结构,链路中只能有一台主设备,可以有多台从设备。主设备向从设备发送请求指令,从设备对该指令进行响应。从设备不能主动向主设备发送指令,并且从设备之间也不能进行通信。FreeModbus是一个开源的Modbus通信协议实现库。可

stm32在freertos系统下使用串口DMA接收方式对接freemodbus-rtu协议栈

stm32在freertos系统下使用串口DMA接收方式对接freemodbus-rtu协议栈文章目录stm32在freertos系统下使用串口DMA接收方式对接freemodbus-rtu协议栈前言码农工程师,人狠话不多,大家多看图和代码!!!一、准备工作cubemx配置dma初始化的一个注意点二、拆解freemodbus1.porttimer.c文件不再使用(不使用定时器判断接收完成),接口代码直接返回ok。2.portserial.c文件3.mbrtu.c文件;修改串口收,发,收发完成3个函数。4.接口处理文件;该代码来源于网上,可自行搜索调试。三、freertos系统的接口部分USAR

单片机移植freemodbus主机(STM32、GD32、瑞萨、国民技术等)

一、移植库源代码从github下载:https://github.com/armink/FreeModbus_Slave-Master-RTT-STM32无法下载或者下载太慢可以用资源下载,无需积分。freeModbus主机源码下载示例代码一、工程创建参考从机代码创建三、源代码移植将FreeModbus主机源代码拷贝到工程中间件-第三方库-freemodbus源码库:即Middlewares\Third_Party\FreeModbusMaster文件夹中。将源码添加到工程中头文件包含3.1源码接口完善FreeModbus的移植主要包含:物理层接口的修改、应用层回调的修改。具体函数如下:3.1

freemodbus移植进STM32(包含HAL库和标准库两种方法)

freemodbus移植基于freemodbus1.6使用HAL库软件:stm32cubemxstm32cubeide后续会更新标准库的移植。以及rtos下的移植(尽量)下载freemodbus1.6这个获取方法网上到处都是,不细说了。cubemx新建工程新建工程只列出了与移植freemodbus相关的设置这里我使用的是485通信,所以额外使能了一个引脚使能一个定时器,这里我用的是tim2。并且开始定时器2中断其他设置如下图,参数其实设什么无所谓,因为后面要改的,我们并不用系统的初始化函数。然后使能一个串口,我这里用的串口1,参数其实设什么无所谓,因为后面要改的,这里可以把串口1和定时器2的最