打印
[STM32]

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

[复制链接]
420|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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 的两个数据之间不能紧密联系在一起,从而出错

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

49

主题

220

帖子

3

粉丝