[STM32] 两个DMA通道的冲突问题,spi和adc 冲突

[复制链接]
 楼主| ljxh401 发表于 2022-8-3 13:01 | 显示全部楼层 |阅读模式
我使用 dma 循环读取adc 数据  占用 DMA1_Channel1
我使用 dma 发送SPI1 利用 MOSI1 驱动 WS2812 灯带 占用 DMA1_Channel3,单次发送一组数据
两者单独使用都没有问题,
但是 我要是 同时使用: 驱动的灯带 有时候就会闪烁错误,我已经将 DMA1_Channel3 的优先级设置为高

我将灯带的长度设置,原先是64个灯珠,改为40个灯珠,又变回正常

我理解 dma  应该是 收到信号(spi发送完成),占用dma总线,将数据写入spi->dr 释放dma 总线
读取 adc 信号也是如此
那么 dma 占用的时间 应该很少的 这个切换过程应该不至于影响我的 ws2012 的spi 驱动

但是实际使用感觉 dma 驱动先占领了 spi 发送, adc 申请到就被adc 暂时占用了 导致我的 spi 的两个数据之间不能紧密联系在一起,从而出错
您需要登录后才可以回帖 登录 | 注册

本版积分规则

52

主题

230

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部