硬汉嵌入式论坛

 找回密码
 立即注册
查看: 386|回复: 8
收起左侧

[技术讨论] 请教大家MCU间通信的方法

[复制链接]

6

主题

20

回帖

38

积分

新手上路

积分
38
发表于 5 天前 | 显示全部楼层 |阅读模式
最近做项目要用到两个单片机间用串口通信,传输一些传感器数据,咨询下大家串口通信的最佳实践是什么,感觉传统的0XAA开头这种不是很好,容易出问题。
回复

使用道具 举报

1

主题

100

回帖

103

积分

初级会员

积分
103
发表于 4 天前 | 显示全部楼层
本帖最后由 dukelec 于 2026-4-6 09:00 编辑

可以参考这个,类 Modbus 的更现代化的版本:


CDNET 协议简介及示范 v133.pdf (1.51 MB, 下载次数: 43)

https://github.com/dukelec/cdnet ... A%E7%A4%BA%E8%8C%83

回复

使用道具 举报

7

主题

173

回帖

194

积分

初级会员

积分
194
发表于 4 天前 | 显示全部楼层
直接MODBUS就行了,大不了根据格式自定义一个功能码,MODBUS是留了自定义功能码的
回复

使用道具 举报

1万

主题

7万

回帖

12万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
121982
QQ
发表于 3 天前 | 显示全部楼层
1、使用modbus
https://forum.anfulai.cn/forum.p ... 6989&extra=page%3D3

2、也可以单纯使用这个,更简单些
高效可靠的数据字节编码算法COBS,可用于串口通信
https://forum.anfulai.cn/forum.p ... d=115429&fromuid=58

回复

使用道具 举报

7

主题

418

回帖

439

积分

高级会员

积分
439
发表于 3 天前 | 显示全部楼层
使用固定的头,即协议数据本地不含该头,如果有则转义一下。这样接收就特别好处理。
回复

使用道具 举报

25

主题

217

回帖

292

积分

高级会员

H7 TOOL 大法好!

积分
292
发表于 3 天前 | 显示全部楼层
fxyc87 发表于 2026-4-7 08:48
使用固定的头,即协议数据本地不含该头,如果有则转义一下。这样接收就特别好处理。

可以gitee 搜索一下 modbusX
回复

使用道具 举报

1

主题

9

回帖

12

积分

新手上路

积分
12
发表于 前天 14:14 | 显示全部楼层
可以参考Hart协议,0xFF开头的一串前导码
回复

使用道具 举报

5

主题

328

回帖

343

积分

高级会员

积分
343
发表于 前天 14:47 | 显示全部楼层
可以看看cobs,自动处理每一帧的边界,不会有0xaa55可能的冲突问题
回复

使用道具 举报

128

主题

681

回帖

1080

积分

至尊会员

积分
1080
QQ
发表于 前天 16:24 | 显示全部楼层
我是自己随便定的协议。按时间分帧,有校验+重发机制就行了。串口这个通讯方式出问题的概率比较小。

我看网上有一些转义码的方案,比如楼上说的cobs之类的,你也可以参考。我是按照时间分帧的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2026-4-10 14:40 , Processed in 1.515879 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表