您现在所在位置: 首页 > 应用笔记 > 华大单片机HC32F4A0之DMA重复搬运数据的问题

应用笔记

F460开发笔记

F4A0开发笔记

华大工具

F/L170笔记

F/L196笔记

华大单片机HC32F4A0之DMA重复搬运数据的问题

发布时间:2022-08-02 10:46:16

不少人在使用华大单片机HC32F4A0的时候有这样一个需求,那就是使用DMA搬运的时候,希望能够有一个重复的循环过程,毕竟刚接触到这款单片机的时候,一些工程师发现在设置DMA搬运次数的时候会出现一定情况下,搬运次数达到设置值,然后DMA搬运就停止了。

虽然在这个时候会产生一个中断,但是需要在中断中再重新使能DMA的搬运,那么当采样速率较低的时候这种配置方法是没有问题的。

但是在采样速率达到一定的速度以后就有可能在中断中重新开启DMA出现数据丢失的风险,那么在这种情况下,就希望单片机硬件可以自己进行一个循环采样搬运的过程。

那我们知道一般情况下DMA都是配合外设所使用的,比方说ADC用定时器触发,然后再用DMA进行一个搬运的过程,如果设置搬运次数为0,也就是按照手册的话不停的搬运,但是这样的话不会产生中断,如果设置为有限次数的搬运会产生中,又需要重新使能DMA的搬运。

这个时候其实就可以使用DMA传输的一个链表功能,那么以厂家提供的例程为例,那么实际上就是将我们的源地址设置成15个重复的地址空间。

后采样15个数之后就会触发一个DMA设置的重置功能,而当这个功能触发之后,原地址又会回到最初的位置上,从而实现一个连续的循环采样模式,如果需要想要具体的源代码和头文件可以私信我们

Zye-BBS





15538577277 张工 13837129004 连工 工作时间:周一至周五 上午8:30-下午6:00