Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
freemodbus
RT-Thread
RTU
RT-Thread 应用笔记 - freemodbus RTU RS485 主机
发布于 2020-12-02 21:55:06 浏览:2997
订阅该版
[tocm] [RT-Thread 入门学习笔记 - 目录](https://club.rt-thread.org/ask/article/3420.html) [RT-Thread 应用笔记 - 不正确使用LOG也会引发hard fault](https://club.rt-thread.org/ask/article/2329.html) [RT-Thread 应用笔记 - RTC Alarm 组件的使用](https://club.rt-thread.org/ask/article/2312.html) [RT-Thread 应用笔记 - freemodbus RTU RS485 从机](https://club.rt-thread.org/ask/article/2346.html) [RT-Thread 应用笔记 - freemodbus RTU RS485 主机](https://club.rt-thread.org/ask/article/2353.html) [RT-Thread 应用笔记 - libmodbus RTU RS485 从机](https://club.rt-thread.org/ask/article/2378.html) [RT-Thread 应用笔记 - libmodbus RTU RS485 主机](https://club.rt-thread.org/ask/article/2382.html) [RT-Thread 应用笔记 - STM32 CAN 通信双机](https://club.rt-thread.org/ask/article/2385.html) [RT-Thread USB学习实践系列](https://club.rt-thread.org/ask/article/2396.html) ## 背景 * 部分用户使用基于rt-thread freemodbus组件,发现没那么顺利。 * 基于rt-thread,已经有freemodbus的主从机软件包。 * 本篇实现主机篇,从机篇请查看上一篇笔记。 * 最近发现部分用户,组件拉下来,编译通过,调试失败,就发帖求助,没有主动的去分析问题的原因,多半是连引脚都没有配置。 ## 前言 * 嵌入式软件工程师,需要了解原理图,了解引脚定义,如串口、RS485控制引脚、等等。 * 我的板子,MCU 为STM32F103C8T6, Flash与SRAM都相对不大。 * UART1用于rt-thread MSH串口。 * UART3用于RS485,用于modbus rtu串口。 ## 移植 * 与freemodbus从机一样。 ![2020-12-02_213959.png](/uploads/20201202/8361ecac847275f9a220487c68da3fbb.png) ![2020-12-02_214010.png](/uploads/20201202/7286ffbee98293b9b4e1226edf4c2044.png) ![2020-12-02_214021.png](/uploads/20201202/46cf9bf40808486149e3e9e491985225.png) ![2020-12-02_214028.png](/uploads/20201202/7d278b9a6d9b2090e03a7e8a77fbedd8.png) ![2020-12-02_214036.png](/uploads/20201202/caa29504b8c89d558e504cdefb0ef1cc.png) ![2020-12-02_214355.png](/uploads/20201202/34769d1df72dde51c035fa5bd8d4da26.png) * 编译与下载。 * MSH 串口运行:mb_master_samlpe,开启主机功能,例程里,是写多个保持寄存器。 ```c while (1) { /* Test Modbus Master */ data[0] = (USHORT)(rt_tick_get() / 10); data[1] = (USHORT)(rt_tick_get() % 10); error_code = eMBMasterReqWriteMultipleHoldingRegister(SLAVE_ADDR, /* salve address */ MB_SEND_REG_START, /* register start address */ MB_SEND_REG_NUM, /* register total number */ data, /* data to be written */ RT_WAITING_FOREVER); /* timeout */ /* Record the number of errors */ if (error_code != MB_MRE_NO_ERR) { error_count++; } } ``` * 连接从机,注意RS485接线。 * 可以使用modbus slave工具,模拟从机(usb转rs485接入电脑)。 ![2020-12-02_212723.png](/uploads/20201202/08d1d06333f497bd8a9c73cb47d4f1fa.png) ![2020-12-02_212840.png](/uploads/20201202/aa120acc77dbb9d8a1a5b96df038ba46.png) ![2020-12-02_212923.png](/uploads/20201202/33acadb1160524190f731beb894e8f5c.png) ![2020-12-02_213039.png](/uploads/20201202/7f115175c564b2f5b0ce6033dd769d0e.png) ![2020-12-02_213118.png](/uploads/20201202/03519215ce2053edd5c28e7a819c35c0.png) * 主机正常运行。 ## 总结: (1)引脚配置,如uart3的配置,是需要用户自己配置的,如果使用STM32 HAL库,一般在board目录下,有个 stm32f1xx_hal_msp.c。注意,不同系列的STM32,不一样,如F4 L4等。注意灵活参考。 (2)RS485通信,需要考虑方向控制引脚的配置。 (3)注意从机地址的设置,如果是主机,理论上可以与多个从机进行通信,多个从机,都菊花链式挂在同一条RS485总线上。 (4)多看Modbus协议,了解寄存器的读写。 ## demo 地址: ```c https://gitee.com/zhangsz0516/rtt_stm32_freemodbus ```
0
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
张世争
学以致用
文章
131
回答
804
被采纳
173
关注TA
发私信
相关文章
1
RT-THREAD在STM32H747平台上移植lwip
2
正点原子miniSTM32开发板读写sdcard
3
反馈rtt串口驱动对低功耗串口lpuart1不兼容的问题
4
Keil MDK 移植 RT-Thread Nano
5
RT1061/1052 带 RTT + LWIP和LPSPI,有什么坑要注意吗?
6
RT thread HID 如何收发数据
7
求一份基于RTT系统封装好的STM32F1系列的FLASH操作程序
8
RT-Thread修改项目名称之后不能下载
9
rt-studio编译c++
10
有木有移植rt-thread(nano)到riscv 32位MCU上
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
rt_mq_消息队列_msg_queue
keil_MDK
ulog
MicroPython
C++_cpp
本月问答贡献
踩姑娘的小蘑菇
7
个答案
3
次被采纳
a1012112796
20
个答案
2
次被采纳
张世争
11
个答案
2
次被采纳
rv666
9
个答案
2
次被采纳
用户名由3_15位
13
个答案
1
次被采纳
本月文章贡献
程序员阿伟
9
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
RTT_逍遥
1
篇文章
6
次点赞
大龄码农
1
篇文章
5
次点赞
ThinkCode
1
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部