找回密码
 立即注册
楼主: tzz1983

4组串口UART使用DMA收发 @32G系列,易用,高效,稳定 !精品实战代码

  [复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2026-02-06 15:56:27
已绑定手机

0

主题

1

回帖

6

积分

新手上路

积分
6
发表于 2026-2-6 15:56:27 | 显示全部楼层
没有收到完成标志位,怎么解析数据。

点评

串口本身是字节流,没有内置的包边界。常用的区分数据包的方式可以分为以下几类: 1. 基于时间间隔(帧间隔)这是最简单的方法。 2. 带同步头的协议原理:使用特定的同步序列(如0xAA 0x55 0xAA 0x55)作为帧头。 3  详情 回复 发表于 2026-2-7 07:52
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:34
  • 最近打卡:2026-03-21 11:26:47

36

主题

1153

回帖

2871

积分

荣誉版主

积分
2871
发表于 2026-2-7 07:52:28 | 显示全部楼层
dcau*** 发表于 2026-2-6 15:56
没有收到完成标志位,怎么解析数据。

串口本身是字节流,没有内置的包边界。常用的区分数据包的方式可以分为以下几类:
1. 基于时间间隔(帧间隔)这是最简单的方法。
2. 带同步头的协议原理:使用特定的同步序列(如0xAA 0x55 0xAA 0x55)作为帧头。
3. 长度字段法(最常用)在数据包头部包含长度信息。格式:[帧头][长度][数据][校验]
4. 特殊字符分隔,原理:使用特殊字符作为包分隔符(如换行符\n)。

本文中的DMA-USAR是通用的,没用限制用法,适用于各种情形,后续步骤根据自身需求添加比如:
1. 做成 “ 基于时间间隔 ”, 定时调用接收函数查看是否收到数据 -> 判断时间间隔 -> 根据时间间隔组包。
2. 做长度字段法,利用已有的成熟包格式 或 自己定义一个喜欢的任意包格式:[帧头][长度][数据][校验]

回复

使用道具 举报 送花

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

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-3-26 19:28 , Processed in 0.103521 second(s), 51 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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