mengxuan1303 发表于 2023-9-27 08:45:51

请教关于DMA功能的一个问题

首次应用DMA功能,向各位大侠请教:
利用串口DMA通信,串口接收数据大于DMA_UR1R_AMT设置数量时,
再接收数据是在设定的XRAM中循环接收,还是需要人为干预啊?

乘风飞扬 发表于 2023-9-27 09:08:55

收满设置数量的数据后会产生DMA接收完成中断,并且停止DMA接收。
如果需要继续接收的话要手动启动新一轮的接收触发。

mengxuan1303 发表于 2023-9-27 10:43:02

谢谢,我不打算使用中断(开辟的接收缓冲区足够大,每次接收数据指令并不长),利用定时器循环查询接收时间溢出标志和完成寄存器的接收数据(DMA_UR1R_DONE),那么触动新一轮接收后,传输完成字节寄存器(DMA_UR1R_DONE)是不是也复位了?

WHX 发表于 2025-3-15 14:07:24

乘风飞扬 发表于 2023-9-27 09:08
收满设置数量的数据后会产生DMA接收完成中断,并且停止DMA接收。
如果需要继续接收的话要手动启动新一轮的 ...
请问一下,您说收满设置数量的数据后会产生DMA接收完成中断,并且停止DMA接收。
那么当没有收满设置数量的数据后还会产生DMA接收完成中断吗?
没有收满是否会一直等待收满,然后就不会触发中断吗?

jwd 发表于 2025-3-15 15:27:17

WHX 发表于 2025-3-15 14:07
请问一下,您说收满设置数量的数据后会产生DMA接收完成中断,并且停止DMA接收。那么当没有收满设置数量的 ...

有些芯片有超时检测,如果没有的话应该是一直等

WHX 发表于 2025-3-15 15:51:09

jwd 发表于 2025-3-15 15:27
有些芯片有超时检测,如果没有的话应该是一直等

哦,确定当串口DMA接收缓存没有接收满的时候会一直等吗?

乘风飞扬 发表于 2025-3-15 17:21:44

WHX 发表于 2025-3-15 15:51
哦,确定当串口DMA接收缓存没有接收满的时候会一直等吗?

没有收发满预设字节数的数据,不会产生DMA收发完成中断。

WHX 发表于 2025-3-16 08:14:59

乘风飞扬 发表于 2025-3-15 17:21
没有收发满预设字节数的数据,不会产生DMA收发完成中断。

嗯嗯,好的,那我就只能另开一个该串口的收发中断来做一个收发超时来解决了,谢谢

jwd 发表于 2025-3-16 10:00:39

WHX 发表于 2025-3-16 08:14
嗯嗯,好的,那我就只能另开一个该串口的收发中断来做一个收发超时来解决了,谢谢 ...

你可以用定时器来处理超时啊

WHX 发表于 2025-3-16 10:13:38

jwd 发表于 2025-3-16 10:00
你可以用定时器来处理超时啊

定时器都用完了
页: [1] 2
查看完整版本: 请教关于DMA功能的一个问题