舌头边上有锯齿状是什么原因| daogrs是什么牌子| 为什么白带是绿色| 右手臂痛是什么预兆| 芒果有什么功效| 什么地制宜| 什么样人穿棉麻好看| 1984年属鼠五行属什么| 为什么月经期有性冲动| 画画用什么铅笔| 湿热是什么意思| 为什么饿的很快| 托帕石是什么| 什么是八爪鱼| 八字指的是什么| 头昏脑胀吃什么药| 处女膜是什么样的| 香港代表什么生肖| 吃什么食物排湿气| 什么食物含蛋白质高| 什么是菜花病| 龙井茶属于什么茶| 一点点奶茶什么最好喝| 排异反应是什么意思| 榴莲什么时候吃是应季| 不干胶是什么| 2222是什么意思| dr是什么检查| 血热吃什么药效果好| 榴莲皮可以做什么| may是什么意思| l是什么字| 陈赫火锅店叫什么名字| 霄是什么意思| 老掉头发是什么原因| pettm和pe有什么区别| 鱼是什么意思| 心里不舒服是什么原因| 猴子尾巴的作用是什么| 小孩用脚尖走路是什么原因| 摩羯座是什么星象| 64年属什么的| 什么季节减肥效果最快最好| 5月12日是什么星座| 代谢不好吃什么药| 多吃核桃有什么好处和坏处| 四叶草是什么牌子| 欢喜是什么意思| 唐僧取经取的是什么经| 发福是什么意思| 什么人容易得天疱疮| 牙齿有黑线是什么原因| 立字五行属什么| 擦枪走火什么意思| 右边脸疼是什么原因| 保守治疗是什么意思| 七月13号是什么星座| 静脉血栓是什么症状| 出人头地是什么意思| 过堂是什么意思| 狗冲什么生肖| 额头长痘是什么原因引起的| 什么是增强ct| 湿气重的人喝四物汤会有什么| 云南白药治什么| 男士补肾吃什么| 为什么身份证后面有个x| 真露酒属于什么酒| 依非韦伦片治什么病的| 复读是什么意思| 炖羊肉放什么| 妈妈的姐姐的儿子叫什么| 十月初八是什么星座| 精囊腺囊肿是什么意思| mandy英文名什么意思| 酒喝多了喝什么解酒| 牙龈肿是什么原因引起的| ppi是什么药| 如果怀孕了会有什么预兆| 清华什么专业最好| 修缮是什么意思| 为什么会得脂溢性皮炎| 什么风什么面| 痘痘反复长是什么原因| 7.10是什么日子| 小便次数多是什么原因| 粳米是什么米| 为什么会睡不着| 老是流眼泪是什么原因| 常吃阿司匹林有什么副作用| 为什么有的人招蚊子| 眼睛有眼屎用什么眼药水| 脊髓空洞症吃什么药| 限高是什么意思| 哈比是什么意思| 头胀痛什么原因| 糙米是什么| 巴旦木和杏仁有什么区别| 脚板疼是什么原因| 现在什么年| 清淡饮食吃什么| 生理期吃什么水果比较好| 解表药是什么意思| 6.15是什么日子| 什么人一年只工作一天脑筋急转弯| 甜醋是什么醋| 乔迁之喜送什么花| 梦见自己拉了很多屎是什么意思| 红参适合什么人吃| 吃什么可以通便| rr医学上什么意思| 一个h是什么牌子| 为什么一吃饭就拉肚子| 阿莫西林和头孢有什么区别| 中级会计什么时候报名| 6月初6是什么星座| 胆红素高说明什么| pppd是什么意思| 荨麻疹吃什么中药| 一声什么| 今天是什么日子 农历| 香瓜不能和什么一起吃| 小沙弥是什么意思| 肠化生是什么意思| 脖子上长小肉粒是什么| 长期肚子疼是什么原因| 不知道干什么| 霉点用什么可以洗掉| 西湖醋鱼用什么鱼| 北京的市花是什么花| 玉髓什么颜色最贵| 铁补多了有什么副作用| 梦到孩子被蛇咬是什么意思| 什么可以吃| 梦见黄鼠狼是什么意思| 处事不惊是什么意思| 晚上难以入睡是什么原因| 打狂犬疫苗不能吃什么食物| 三高人群适合吃什么水果| 肺结节挂什么科室| 蒲公英长什么样| 音准是什么意思| 血离子是检查什么的| nuxe是什么牌子护肤品| 6月8日什么星座| vera是什么意思| 什么空调省电| 埋线是什么意思| 皮肤变白是什么原因| 老鹰的天敌是什么| 阴蒂痛是什么原因| 警察两杠三星是什么级别| 69年什么时候退休| 阿尔茨海默病吃什么药| 犯太岁是什么意思| 焦虑症吃什么中成药| 月子里吃什么饭最好| 胎盘厚度代表什么| 梦到掉牙齿是什么意思| 嘴巴干苦是什么原因| 九肚鱼是什么鱼| 第二职业干点什么好呢| paris什么牌子| 我们都没错只是不适合是什么歌| hpv低危型是什么意思| 茶艺师是做什么的| 吃什么对肝有好处| 经常头疼是什么原因引起的| 思觉失调是什么意思| 全科门诊主要看什么| 花花世界不必当真是什么歌| 人为什么不可以偏食| 三甲医院是什么意思| me是什么基团| 远香近臭什么意思| 无花果有什么作用| 本科二批是什么意思| 男人湿气重吃什么药| 处事不惊是什么意思| 香菇吃多了有什么危害| 舌根苔白厚腻是什么原因| 6月12日是什么星座| 纬字五行属什么| 果脯是什么| 补气血吃什么食物最好| 中国文字博大精深什么意思| 海南有什么水果| 月经推迟是什么原因| 脑出血什么症状| 薄姬为什么讨厌窦漪房| 拔牙之后可以吃什么| 小妮子是什么意思| 钯金和铂金有什么区别| 三途苦是指的什么| 妊娠试验阴性是什么意思| 散光是什么原因造成的| 女人喝咖啡有什么好处和坏处| 尤加一笔是什么字| 什么助听器| 爱的真正含义是什么| 梦到很多蛇是什么意思| 做梦掉牙齿是什么意思周公解梦| 痰多吃什么好| 中药用什么锅熬效果最佳| 手发胀是什么前兆| 什么茶可以降血压| skp是什么品牌| 阴虱长什么样子图片| 听雨是什么意思| 炒菜什么时候放调料| 聚酰胺纤维是什么面料| 仕字五行属什么| 倒挂金钩是什么意思| 香兰素是什么东西| 飞蚊症用什么眼药水| 鸡全蛋粉是什么东西| 什么叫膳食纤维| 菜心是什么菜的心| 阿斯巴甜是什么东西| 怀孕会有什么症状| 下腹疼是什么原因| 钮祜禄氏是什么旗| 11点是什么时辰| 青蛙吃什么食物| 男属狗配什么属相最好| 农历七月初六是什么星座| 法警是干什么的| prich是什么牌子| 133是什么意思| 农历六月十七是什么星座| 黑胡椒和白胡椒有什么区别| 金银花主治什么| 手腕疼痛挂什么科| 后背发冷发凉属于什么症状| 液基薄层细胞学检查是什么| 上午右眼皮跳什么预兆| 蕊五行属什么| 梦见好多葡萄是什么意思| 师长相当于地方什么级别| 10月13号是什么星座| 梅五行属什么| 不二人选是什么意思| 如来是什么意思| 嗓子干痒吃什么药| 一切有为法是什么意思| 吃什么补骨髓造血| 亚麻跌是什么意思| 胆囊壁稍毛糙是什么意思| 1.4什么星座| 野生刺猬吃什么食物| 产后42天复查都检查什么| 高危性行为是什么| 妈妈的爱是什么| 大芒果是什么品种| 鼻塞吃什么药| 为什么屁多是什么原因| 性格好是什么意思| 术是什么意思| 什么是脱敏| 吃过饭后就想拉大便是什么原因| 慢性鼻窦炎吃什么药| 相思成疾是什么意思| 为什么胃有灼热感| 2月3日什么星座| 百度
这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 ? 论坛首页 ? 嵌入式开发 ? STM32 ? USARTRX使用DMA接收的数据帧判断方法

共1条 1/1 1 跳转至

USARTRX使用DMA接收的数据帧判断方法

院士
2025-08-04 15:10:02     打赏
百度 事件细节 相关新闻  据俄罗斯媒体报道,这架原定由荷兰阿姆斯特丹飞往马来西亚首都吉隆坡的客机17日下午在靠近俄罗斯的乌克兰边境地区坠毁,机上295人或已全部遇难。

一、概述

在使用APM32系列微控制器的USART配合DMA进行数据接收时,如何准确判断一帧数据的接收完成是一个关键问题。本文介绍几种常用的方法及其实现原理。

二、数据帧接收完成判断方法

2.1 固定长度数据帧接收

适用场景:数据帧长度固定且已知。

实现方法:

- 配置DMA接收固定长度的数据

- DMA传输完成中断(TC中断)触发表示接收完成

优点:实现简单,资源消耗少。

缺点:不适用于变长数据帧。

2.2 空闲中断(Idle Interrupt)配合DMA

实现步骤:
1. 使能USART的空闲中断
2. 配置DMA进行循环接收或足够长的线性接收
3. 当检测到总线空闲(1个字符时间无数据)时触发空闲中断
4. 在中断中通过DMA的当前计数器值计算接收到的数据长度

// 空闲中断处理示例
void USARTx_IRQHandler(void)
{
    if(USART_GetITStatus(USARTx, USART_IT_IDLE) != RESET)
    {
        USART_ClearITPendingBit(USARTx, USART_IT_IDLE); // 清除空闲中断标志
        uint16_t remainCnt = DMA_GetCurrDataCounter(DMAy_Streamx); // 获取剩余未传输数据量
        uint16_t recvLen = TOTAL_BUF_SIZE - remainCnt; // 计算实际接收长度
        // 处理接收到的数据...
    }
}

优点:适用于变长数据帧,硬件自动检测。

缺点:需要USART支持空闲检测功能。

2.3 超时(Timeout)机制

实现方法:

  1. 1.配置DMA接收并启用传输完成中断

  2. 2. 每次接收到数据时重置超时定时器

  3. 3. 如果在设定时间内没有新数据到达,判定为帧接收完成

// 定时器中断处理示例
void TIMx_IRQHandler(void)
{
    if(TIM_GetITStatus(TIMx, TIM_IT_Update) != RESET)
    {
        TIM_ClearITPendingBit(TIMx, TIM_IT_Update);
        // 超时处理,判定为帧接收完成
        uint16_t recvLen = TOTAL_BUF_SIZE - DMA_GetCurrDataCounter(DMAy_Streamx);
        // 处理数据...
    }
}

// USART接收中断中重置定时器
void USARTx_IRQHandler(void)
{
    if(USART_GetITStatus(USARTx, USART_IT_RXNE) != RESET)
    {
        // 读取数据或直接清除标志
        USART_ReceiveData(USARTx);
        TIM_SetCounter(TIMx, 0); // 重置超时计数器
    }
}

优点:可灵活调整超时时间,适用于不规则数据帧。

缺点:需要额外定时器资源。

2.4 协议指定长度+DMA

实现方法:
1. 第一阶段:接收固定长度的帧头(包含长度信息)
2. 第二阶段:根据帧头中的长度信息配置DMA接收剩余数据

// 示例处理流程
void DMA_IRQHandler(void)
{
    if(DMA_GetITStatus(DMAy_Streamx, DMA_IT_TC) != RESET)
    {
        DMA_ClearITPendingBit(DMAy_Streamx, DMA_IT_TC);

        if(phase == PHASE_HEADER)
        {
            // 解析头部获取数据长度
            dataLen = parseHeader(rxBuffer);
            // 重新配置DMA接收剩余数据
            DMA_Config(dataLen);
            phase = PHASE_DATA;
        }
        else
        {
            // 完整帧接收完成
            processFrame();
            // 重置为接收头部状态
            DMA_Config(HEADER_LEN);
            phase = PHASE_HEADER;
        }
    }
}

优点:适用于有明确协议的通信。

缺点:实现较复杂,需要协议支持。

3. 方法对比与选择建议

串口接收方法01.png

推荐方案:
1. 对于简单应用,优先考虑空闲中断+DMA方案
2. 对于高可靠性要求场景,建议结合协议指定长度和超时机制
3. 固定长度方案仅适用于特定场景

4. 注意事项
1. DMA缓冲区应足够大以避免溢出
2. 考虑数据对齐问题,特别是使用DMA时
3. 在多任务环境中,处理好数据访问的互斥问题
4. 对于高波特率通信,及时处理接收完成事件以避免数据覆盖
5. 实现适当的错误处理机制(如校验失败、超时等)

5. 总结

APM32 USART使用DMA接收数据时,可通过多种方式判断帧接收完成。选择合适的方法需要综合考虑通信协议特点、硬件资源及可靠性要求。在实际应用中,往往需要结合多种机制来实现稳定可靠的数据接收。




关键词: USART     中断     接收    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]
叶酸有什么作用 增大淋巴结是什么意思 害怕是什么意思 梦见丢了一只鞋是什么意思 什么年什么月
预调酒是什么意思 猫的眼睛为什么会发光 孩子出疹子应该注意什么 令妹是什么意思 斜视是什么
甲状腺看什么科 牙疼脸肿了吃什么药 梦见做饭是什么意思 羟丁酸脱氢酶高是什么原因 青海有什么特产
无花果是什么季节的水果 李白为什么叫青莲居士 吃韭菜有什么好处和坏处 吃什么降肌酐 绿豆跟什么一起煮最好
小资情调是什么意思hcv9jop0ns5r.cn 什么生肖怕老婆hcv8jop4ns2r.cn 胸口闷闷的有点疼是什么原因chuanglingweilai.com 可字属于五行属什么hcv8jop1ns2r.cn 梦见打死蛇是什么意思hcv8jop0ns7r.cn
唱反调是什么意思hcv7jop6ns2r.cn 冬瓜不能和什么一起吃hcv9jop4ns1r.cn 明天叫什么日子hcv7jop9ns0r.cn 1994年属狗的是什么命hcv8jop4ns6r.cn 结婚证需要什么资料hcv7jop9ns0r.cn
眼睛红血丝用什么眼药水hcv8jop3ns7r.cn 甲状腺钙化是什么意思hcv8jop1ns2r.cn 阴虚吃什么食物补得快hcv8jop5ns0r.cn 世界上最贵的东西是什么hcv8jop0ns4r.cn 老是放臭屁是什么原因luyiluode.com
poppy是什么意思hcv8jop6ns5r.cn 龙须菜是什么植物qingzhougame.com 腰酸是什么原因女性hcv9jop6ns2r.cn 肚脐眼位置疼是什么原因youbangsi.com cct是什么意思sscsqa.com
百度