QQ624353765 发表于 2023-7-29 18:34:03

如何使用DMA释放CPU

本帖最后由 QQ624353765 于 2023-7-29 18:38 编辑




DS_BJ是中断标记,spi dma发送完数据中断中会把此位清零


现在是启动DMA发送数据并等待DMA完成发送是正常的,oled屏幕是正常显示的

总觉得这种写法并没有释放CPU




修改下,在发送数据前访问上次数据是否发送完成

把DS_BJ等待标记写在开头,但这样写oled屏幕怎么也点不亮,逻辑也没错,不知道什么原因导致的


如果说第二种写法实现不了,谈何释放CPU



还有这个写SPI数据寄存器也是同样的问题,先查询上次是否完成发送,在发送数据也是点不亮oled12864


jwd 发表于 2023-7-30 17:15:20

ifreturn可能可以解决你的问题

QQ624353765 发表于 2023-7-30 17:56:16

jwd 发表于 2023-7-30 17:15
ifreturn可能可以解决你的问题

{:titter:}

_奶咖君_ 发表于 2023-12-20 15:16:48

5个月过去了,,XieZhiLing可以了么 哈哈哈   还是大驼峰呢

QQ624353765 发表于 2023-12-20 15:29:44

cofmilk 发表于 2023-12-20 15:16
5个月过去了,,XieZhiLing可以了么 哈哈哈   还是大驼峰呢

不行,硬件问题

_奶咖君_ 发表于 2023-12-20 16:01:01

QQ624353765 发表于 2023-12-20 15:29
不行,硬件问题

硬件问题?那可惜了..板子还是片子?

gentleman 发表于 2023-12-20 17:28:35

用if判断
用while 还是会堵塞。


cpu 往内存 装完数据就想干嘛干嘛
让DMA 自己 发送数据





magic8421 发表于 2024-6-27 10:26:41

用rtos 切另一个任务运行 是这样吗?

_NCY_ 发表于 2024-8-6 12:01:25

magic8421 发表于 2024-6-27 10:26
用rtos 切另一个任务运行 是这样吗?

正解。我觉得如果不这样,阻塞的DMA其实谈不上释放cpu,充其量idle一下低功耗
页: [1]
查看完整版本: 如何使用DMA释放CPU