modbus移植到S32K146
1、认识
modbus协议在工程应用领域非常广泛,本质上通过UART串口让主机和从机之间进行通信,modbus移植需要的知识涉及到:串口电路(485或者232),UART驱动,modbus协议
UART串口搞过单片机的应该都熟悉
485电路或者232电路网上有好多,主要注意抗干扰或者隔离问题
modbus协议网上也有很多教程
2、准备
1)硬件上485或者232电路测试好
2)软件上modbus协议栈,可以从官网直接下载,裸机版本
3、移植
1)直接把裸机modbus代码集成到自己工程中,编译不要出错
2)配置好两个重要驱动:1)uart串口;2)串口定时器
uart口用来发送和接收数据,串口定时器用来确认modbus帧与帧报文之间的时间间隔
3)调用初始化函数和轮询函数
4、调试
这部分比较重要,上面步骤一般大家都会按照流程执行,而调试部分比较复杂,每个人碰到的问题都不一样,我列举一下我当时调试碰到你的问题
1)UART可以接收数据,但是modbus协议栈接收不到完整一帧报文
2)主机通信卡住
3)一帧报文可以正常接收,但是无法发出完整一帧数据
4)硬件电路上拉和下拉问题
这里可以用modbus-poll工具去调试,重点设置好串口定时器,串口接收中断使能,串口发送使能,理解好modbus地址如何在代码中体现
modbus移植到S32K146的更多相关文章
- MODBUS移植的参考文章
https://github.com/armink/FreeModbus_Slave-Master-RTT-STM32 http://www.360doc.com/content/14/0906/09 ...
- FreeModbus 移植于STM32 实现Modbus RTU通信
http://ntn314.blog.163.com/blog/static/161743584201233084434579/ 毕业设计自己要做个基于STM32的PLC能直接跑语句表的,现在看来好像 ...
- stm32--free modbus 1.5.0移植(作为从机)
添加文件 获取原始free modbus library(官网) 将...\freemodbus-v1.5.0\demo\BARE中的所有文件复制到...\freemodbus-v1.5.0\modb ...
- 基于STM32和W5500的Modbus TCP通讯
在最近的一个项目中需要实现Modbus TCP通讯,而选用的硬件平台则是STM32F103和W5500,软件平台则选用IAR EWAR6.4来实现. 1.移植千的准备工作 为了实现Modbus TCP ...
- FreeModbus for stm32(Keil工程)——精简Modbus slave协议【worlsing笔记】
FreeModbus For stm32:点击下载源码 1.测试环境Keil MDK 4.7a stm32f103c8, PB12为输出线圈, 可以通过Modbus Poll来控制线圈的输出状 ...
- FreeModbus 精简版本(Only RTU) for M128 (Modbus Slave)
1.硬件连接: M128 PD3 INT3/TXD1 ---> PC 232COM Pin 2 PD2 INT2/RXD1 ---> PC 232COM Pin 3 GND ...
- 移植FreeModbus+ModbusMaster+STM32至RT-Thread(3、4阶段)
一.简介及进展 经过一个多月的努力,目前项目开发已进入最后阶段.虽然比预期时间有些延迟,但也收获不少,边工作边开源的效率确实还有待提高. 简单说下目前的进展吧 1.目前项目已经在Github中开源,大 ...
- C# MODBUS协议 上位机(转)
源:C# MODBUS协议 上位机 C#写了一款上位机监控软件,基于MODBUS_RTU协议. 软件的基本结构: 采用定时器(Timer控件)为时间片. 串口采用serialPort1_DataRec ...
- Modbus软件开发实战指南 之 开发自己的Modbus Poll工具 - 2
接上一篇文章的内容. 看了前面需求提到的复杂的命令行解析功能,很多人立马开始发怵,其实大可不必. 我们都知道,Linux下的程序往往都提供了复杂的命令行参数处理机制,因为这是与 其他程序或用户进行交互 ...
- 【HAL库每天一例】freemodbus移植
例程下载:资料包括程序.相关说明资料以及软件使用截图 百度云盘:https://pan.baidu.com/s/1slN8rIt 密码:u6m1 360云盘:https://yunpan.cn/OcP ...
随机推荐
- 谈谈笔者是怎么拿到HFish社区活动仅有的500京东E卡
前言 早在2022年5月18日的时候,由于HFish官方文档的nginx配置文件问题,官方文档的nginx配置存在多处错误.在HFish的社区群里为群友解答如何使用nginx进行反向代理以及提供能供正 ...
- pyqt点击右上角关闭界面但子线程仍在运行
现象: 通过右上角的叉关闭图形界面后,程序运行的子线程却不会被自动关闭,依然留存在系统中 原因: 子线程没有正确关闭 解决方法: 1.将子线程设置成守护线程 self.your_thread = th ...
- B1031 查验身份证 (15 分)
描述 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5 ...
- 预编译语法_sql注入技巧
预编译可以将一串命令提前编译成可执行文件 可以用于被过滤或检测到的字眼分割成几部分以越过检测 set @sentence_i_want_to_exec=concat('sel','ect * from ...
- 两步实现让antd与IDE和睦相处的处理案例
导读: Web IDE的开发从来是整个大数据平台开发中非常繁复和笨重的一环,从零搭建一个 Web IDE 通常意味着大量的殚精竭虑和苦思冥想,时间成本更是不可计数.两个UI组件库一起用更是bug的代名 ...
- secp256k1算法详解二(关键理论及源码分析)
1 关键结构体 1.1 secp256k1_fe secp256k1库域元素field element,其具体定义如下 /** This field implementation represents ...
- Cursor 1.2重磅更新,这个痛点终于被解决了!
大家好,我是程序员鱼皮.分享一个重磅消息,AI 编程工具 Cursor 1.2 版本正式发布了! 感觉最近 Cursor 团队像打了鸡血一样,从 1.0 到 1.1 再到 1.2,短短一个月更新了 2 ...
- C/C++实现合成地震记录
C/C++实现合成地震记录 本实例将从波阻抗模型中获得与之对应的反射系数,再将反射系数与子波褶积得到合成地震记录. 1 由波阻抗获取反射系数 地震波在介质中传播时,作用于某个面积上的压力与单位时间内垂 ...
- Andriod SDK安装教程
前言 最简单的方式 我们使用ANDROID STUDIO这款开发工具下载对应的Andriod SDK. 可是我们如果不开发安卓,只是用它的一些SDK包的话而安装整个开发工具,就没必要了. 这里讲的是用 ...
- react开发组件并发包到npm
Toast组件 import ReactDomCli from 'react-dom/client'; import './style.css' import React from 'react'; ...