我使用 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 的两个数据之间不能紧密联系在一起,从而出错 |