当前位置: 首页 > news >正文

stm32-modbus-rs485程序移植过程

 背景 

【modbus学习笔记】Modbus协议解析_modus协议中0.001如何解析-CSDN博客

 【Modbus学习笔记】stm32实现Modbus(从机)并移植_stm32 modbus数据处理-CSDN博客

继上篇成功移植modbus从机例程之后,我要尝试移植主机的程序。经提醒,可用野火的modbus代码。

参考教程:

Modbus参考例程 — 野火产品资料下载中心 文档https://doc.embedfire.com/products/link/zh/latest/package/modbus.html

支持板子:

例程介绍:

http:// https://doc.embedfire.com/module/module_tutorial/zh/latest/Module_Manual/extend_class/modbus.html#

 其他教程(博主暂时没看):

up主X西鱼X的所有视频,如:

【FreeRTOS+freemodbus(无BGM)】 https://www.bilibili.com/video/BV1LRUSYFET3/?share_source=copy_web&vd_source=0d3e505cd639f5fd61042ee6c87b2fd6

 

移植过程

配置

【例程配置】

引脚分配
    PA2     ------> USART2_TX
    PA3     ------> USART2_RX

   用定时器4

【我的工程】

引脚分配
    PA2     ------> USART2_TX
    PA3     ------> USART2_RX 

    PA1     ------> CON(485方向控制引脚)

   用定时器6

步骤

1. 在cubemx中配置通信引脚,定时器,打开中断。

2. 将例程中的文件加入自己的,要对照工程加。

3. 运行,出现报错后修改,以下是我运行过程中修改的地方,按记忆记录,不一定完全。

改一:

mx生成的MX_USART2_UART_Init()里面没有未知参数,要改。

改二:

USART2在cubemx配置的是同步,生成代码后,去这个配置文件中把#define HAL_USART_MODULE_ENABLED  的注释解开,用到了这个库的函数

改三:

因为void USART2_IRQHandler(void)在stm32f1xx_it和portserial_m都有,我选择把stm32f1xx_it里面的注释掉。

 改四:

我的定时器和例程用的不同,他用的4,我用的6,并且mx自动帮我配置了,所以要把porttimer_m里面的void TIM4_IRQHandler(void)注释掉

 改五:

在mx生成的usart.h中添加引脚定义,另外我用到了485,需要打开485注释,并且修改引脚,注意引脚方向。

改六:

 main.c文件中也要记得改。

运行结果

将程序下载到芯片后,打开modbus slave软件连接。

连接后,现象如图。

点击Display->Communication,可以看到通讯内容。

http://www.dtcms.com/a/274436.html

相关文章:

  • gRPC服务注册和故障恢复
  • AI技术重塑工业制造:从智能应用到大型模型落地
  • AMTS AHTE | 具身智能成制造升级新引擎 灵途科技助力更强感知
  • 八股训练--RabbitMQ
  • LVS-NAT模式配置
  • 《Java 虚拟机内幕:从垃圾回收到类加载的深度解析》
  • 微积分核心考点全解析
  • pnpm 的 resolution-mode 配置 ( pnpm 的版本解析)
  • 上位机知识篇---Docker
  • 静态路由综合实验报告册
  • HashMap简介
  • 五星出东方洛老师:gma绘制的洛阳市瀍河回族区的地图和兴趣点
  • 高精加法-P1601 A+B Problem(高精)
  • intellij idea的重命名shift+f6不生效(快捷键被微软输入法占用)
  • 决策树算法在医学影像诊断中的广泛应用
  • 知识科普丨详述agent含义
  • 【深度学习系列】ResNet网络原理与mnist手写数字识别实现
  • 浏览器重绘与重排
  • JAVA ---Excel高效导入(去重1000万数据对比)
  • 聊聊微服务架构中的双token
  • Junit多线程的坑
  • Python爬虫动态IP代理报错全解析:从问题定位到实战优化
  • 【牛客刷题】超级圣诞树(递归法和分形复制法)
  • 实时数仓和离线数仓还分不清楚?看完就懂了
  • SpringCloud 运用(5)—— sentinel限流与seata分布式事务
  • 「备忘」查询日志
  • Spring Boot整合MyBatis+MySQL实战指南(Java 1.8 + 单元测试)
  • 从 JavaFX WebView 迁移至 JxBrowser
  • 【科研绘图系列】R语言绘制系统发育树和柱状图
  • 以科技赋能未来,科聪持续支持青年创新实践 —— 第七届“科聪杯”浙江省大学生智能机器人创意竞赛圆满落幕