STM32
直播中

王军

7年用户 1760经验值
私信 关注
[问答]

STM32G030F ADC-DMA1通道3,串口收发-DMA1的通道1和通道2,同一个DMA的不同通道为什么会相互影响呢?

同一个DMA的不同通道为什么会相互影响呢,关闭ADC,串口工作正常,串口波形正常。打开ADC,串口虽然也能工作,但是波形在跳动,好像是ADC的DMA通道总是在打断它

回帖(2)

陈萌

2024-3-26 15:56:59
同一DMA的不同通道间是有可能发生竞争的情况,进而影响实际结果。UART收发时序性要求较高,你不妨将他们的DMA影响优先级做个调整看看?比方UART-RX请求配置为高,ADC配置为中,UART-TX配置为低。当然,你最终按你实际需求来调整。
举报

李霞

2024-3-26 18:12:47
同一个DMA的不同通道之间如果相互影响,通常是由于DMA的配置存在问题,导致DMA通道之间发生干扰。可能的原因包括以下几点:

1. DMA间隔时间设置不当:在配置DMA通道时,需要正确设置DMA的间隔时间。如果两个DMA通道的间隔时间设置不当,可能会导致一个DMA通道打断另一个DMA通道的传输。

2. DMA优先级设置不当:DMA通道之间的优先级设置也可能导致干扰。较高优先级DMA通道的传输可能会打断较低优先级DMA通道的传输。

3. 数据溢出:如果一个DMA通道的传输长度超过了目标存储器的大小,可能会发生数据溢出,导致影响到其他DMA通道的数据传输。

4. DMA请求冲突:如果两个DMA通道都试图访问同一块硬件资源,比如外设数据寄存器,可能会导致请求冲突,造成干扰。

为了避免同一个DMA的不同通道相互影响,需要仔细检查DMA通道的配置和参数设置,确保每个DMA通道的传输长度、优先级、间隔时间等都正确设置。另外,还需要考虑可能的硬件冲突和资源竞争问题,确保DMA通道的访问不会相互干扰。
举报

更多回帖

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