推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

LAT1315+串口DMA接收不定长数据的一种方法

更新时间:2026-09-21 11:45:05 大小:472K 上传用户:zq_1943查看TA发布的资源 标签:STM32USARTDMAReceiver Timeout不定长数据 下载积分:5分 评价赚积分 (如何评价?) 打赏 收藏 评论(0) 举报

资料介绍

1. 前言 

使用串口接收不定长数据时,可以有多种方法,比如最常见的有额外使能一个定时器,在 超过定时范围未收到后续的字节时,认为此帧结束;或者利用 IDLE 中断,当数据空闲时,自 动产生中断;亦或每接收到一个字节后都通过应用程序进行一次处理。

这次我们介绍另外一种 方法,在 DMA 方式下利用硬件接收超时中断(Receiver timeout interrupt)实现不定长数据 的接收。 

2. 实现原理 

首先,并非所有的 STM32 系列的 MCU,也并非所有的 USART/UART 外设都支持 Receiver timeout (RTO)特性,具体的支持情况,可以通过对应芯片的参考手册去查询。 对于 MCU 的配置,可以通过 USART_RTOR 寄存器的 RTOEN 位使能接收超时功能,通 过 RTO 位域配置超时时间,时间单位为传输一个数据位的时间(即波特率)。 

接收超时在停止位设置不同的情况下,计时的起始位置不同: 

1. 如果 stop = ' 00 '或 stop = ' 11 ',从停止位的末尾开始。 

2. 如果 stop = ' 10 ',则从第二个停止位的末尾开始。 

3. 如果 stop = ' 01 ',则从停止位的起始开始。 当计数超过 RTO 位域的设定值时,且使能了 RTOIE 位,就会产生一个错误中断,此时我 们就可以认为此帧结束,进而进行处理。

部分文件列表

文件名 大小
【应用笔记】LAT1315+串口DMA接收不定长数据的一种方法.pdf 472K

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单
  • 21下载积分 打赏60.00元   3天前

    用户:gsy幸运

  • 21下载积分 打赏70.00元   3天前

    用户:铁蛋锅

  • 21下载积分 打赏65.00元   3天前

    用户:xzxbybd

  • 21下载积分 打赏60.00元   3天前

    用户:jh0355

  • 21下载积分 打赏60.00元   3天前

    用户:w178191520

  • 21下载积分 打赏20.00元   3天前

    用户:jh03551

  • 21下载积分 打赏20.00元   3天前

    用户:sun2152

  • 21下载积分 打赏20.00元   3天前

    用户:kk1957135547

  • 21下载积分 打赏25.00元   3天前

    用户:w1966891335

  • 21下载积分 打赏20.00元   3天前

    用户:xuzhen1

  • 21下载积分 打赏15.00元   3天前

    用户:x15580286248

  • 21下载积分 打赏25.00元   3天前

    用户:pcb

  • 21下载积分 打赏20.00元   3天前

    用户:bhacker

  • 21下载积分 打赏15.00元   3天前

    用户:liqiang9090

  • 21下载积分 打赏25.00元   3天前

    用户:有理想666

  • 21下载积分 打赏15.00元   3天前

    用户:godbox

  • 21下载积分 打赏15.00元   3天前

    用户:aetek

  • 21下载积分 打赏5.00元   3天前

    用户:mulanhk

  • 21下载积分 打赏5.00元   3天前

    用户:JuneLin61

推荐下载