嵌入式学习小组
直播中

汪潇潇

7年用户 848经验值
私信 关注

用PDMA接收串口数据时有没有超时中断?

我有一个疑问,在设置PDMA接收串口数据的时候,要设置传输数据的长度计数,只有当计数为零,产生DMA传输完成中断。

但是在实际应用中,比如定义传输长度为40字节,但对方发过来的数据是70个,在接收到40个字节的时候产生一次中断,剩余下的30个字节不够产生DMA中断,这样接收方将一直得不到剩余的数据。

DMA有没有像串口接收超时中断那样,如果设置的时间过后,接收的数据量一直达不到40个时,会产生超时中断,以告知接收端, 对方已经发送完了。并且能得到实际接收到的字节数呢?

回帖(1)

张红

2024-1-4 11:18:59
在STM32F4系列的芯片中,PDMA可以使用超时中断功能对接收的数据进行限制。当接收数据的时间超过设置的超时时间或者接收的数据长度不足设置的长度计数时,会产生超时中断,告知接收端已经接收完了数据。同时,可以通过查询DMA传输数据的剩余次数和已传输数据的长度来获得实际接收到的字节数。因此,可以通过使用PDMA超时中断功能来解决你提出的问题。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分