如何使用DMA释放CPU
本帖最后由 QQ624353765 于 2023-7-29 18:38 编辑DS_BJ是中断标记,spi dma发送完数据中断中会把此位清零
现在是启动DMA发送数据并等待DMA完成发送是正常的,oled屏幕是正常显示的
总觉得这种写法并没有释放CPU
修改下,在发送数据前访问上次数据是否发送完成
把DS_BJ等待标记写在开头,但这样写oled屏幕怎么也点不亮,逻辑也没错,不知道什么原因导致的
如果说第二种写法实现不了,谈何释放CPU
还有这个写SPI数据寄存器也是同样的问题,先查询上次是否完成发送,在发送数据也是点不亮oled12864
ifreturn可能可以解决你的问题 jwd 发表于 2023-7-30 17:15
ifreturn可能可以解决你的问题
{:titter:} 5个月过去了,,XieZhiLing可以了么 哈哈哈 还是大驼峰呢 cofmilk 发表于 2023-12-20 15:16
5个月过去了,,XieZhiLing可以了么 哈哈哈 还是大驼峰呢
不行,硬件问题 QQ624353765 发表于 2023-12-20 15:29
不行,硬件问题
硬件问题?那可惜了..板子还是片子? 用if判断
用while 还是会堵塞。
cpu 往内存 装完数据就想干嘛干嘛
让DMA 自己 发送数据
用rtos 切另一个任务运行 是这样吗? magic8421 发表于 2024-6-27 10:26
用rtos 切另一个任务运行 是这样吗?
正解。我觉得如果不这样,阻塞的DMA其实谈不上释放cpu,充其量idle一下低功耗
页:
[1]