vivilyly 发表于 2024-9-6 19:32

使用DMA来配合USART接收数据成为了一个高效和性能优异的方案。

maudlu 发表于 2024-9-6 21:08

USART通信是非常常见的一种数据传输方式。

elsaflower 发表于 2024-9-6 22:46

设置USART的RXNE中断使能位,当接收完成时,中断会被触发。

fengm 发表于 2024-9-7 11:05

通过定时器或软件计数器设置一个超时时间。在等待接收数据的过程中,如果超过了超时时间仍未接收到新的数据,则认为一组数据接收完成。

maqianqu 发表于 2024-9-7 12:41

一些微控制器支持USART事件位,当接收到数据时,相应的事件位会被置位。
可以在主循环中检查这些事件位,并在检测到事件时读取数据。

lzbf 发表于 2024-9-7 14:16

USART支持硬件流控制(如RTS/CTS),可以使用它来控制数据的接收。
当接收缓冲区准备好接收新数据时,发送一个请求信号给发送端。

fengm 发表于 2024-9-7 15:57

轮询方法是最简单的一种            

geraldbetty 发表于 2024-9-7 17:30

USART通常用于与外部设备进行异步串行通信,传统的接收方式依赖于中断

xiaoyaodz 发表于 2024-9-7 19:06

可以通过定期检查接收缓冲器的状态来手动检测数据的到来。

alvpeg 发表于 2024-9-7 20:42

设置DMA来自动接收USART数据时,需要配置DMA通道以从USART的RDR寄存器读取数据,并将其存储到内存中的指定位置。同时,可以配置DMA传输完成中断来处理接收到的数据。

cashrwood 发表于 2024-9-7 22:16

使用DMA            

jackcat 发表于 2024-9-9 09:42

在主循环中不断检查USART的接收状态寄存器。

ingramward 发表于 2024-9-9 11:20

主循环中可以处理接收到的数据,例如打印出来或进行其他操作。

juliestephen 发表于 2024-9-9 12:54

DMA 可以在无需 CPU 干预的情况下,将数据从 USART 接收数据寄存器直接传输到指定的内存区域。当 DMA 传输完成后,可以产生中断通知 CPU 进行数据处理。

uytyu 发表于 2024-9-9 14:31

DMA 可以在无需 CPU 干预的情况下,将数据从 USART 接收数据寄存器直接传输到指定的内存区域。

LLGTR 发表于 2024-9-9 17:11

使用dma传输是一种有效的方式,可以使usart在不使用空闲中断的情况下接收多个数据。

Pretext 发表于 2024-9-11 06:12

轮询器**消耗CPU时间,在实时系统中可能不是最有效的方法。

好几遍vh 发表于 2024-9-30 14:47

数据长度已知,如何接收多

天天向善 发表于 2024-10-6 14:14

利用dma配合usart接收数据已经成为一种高效高性能的解决方案。

理想阳 发表于 2024-10-6 23:56

在主循环期间,持续检查usart接收状态寄存器。
页: 1 [2] 3
查看完整版本: USART如何不使用IDLE中断接收多个数据