CH32V307 使用DMA方式驱动SPI FLASH模拟优盘

使用CH32V307 SPI FLASH模拟优盘参考官方例子实现成功,想着使用SPI DMA提高模拟优盘的读写速度,将SPI DMA加入,工程代码如附件。目前遇到问题是首次使用无法格式化,如果不使用dma格式化成功后,再次刷回DMA的代码,能够往优盘写入数据,而且速度也挺快,但是没法删除或者格式化,实在不知道哪里出问题了,DMA配置方面在其他单片机上测试是能够使用的,不知道CH32V307还需要怎么配置

icon_rar.gifSPIFLASH_U-Disk DMA.rar


你好,DMA搬运完成后,SPI寄存器中仍有2个数据没有发送出去,使用TXE可能会遗漏一个,快速拉高片选,有可能导致最后一个数据没有写入,推荐使用BSY标志位,可以避免这个问题。除了这一点之外,不同的地方还有手动发送的时候有读取的操作,而DMA没有,不清楚这一点会不会导致从机反应不过来,推荐用逻辑分析仪看一下,或降低SPI时钟频率试一下。


我只在对flash writepage的时候才用的DMA,其他地方都是手动普通发送。


只有登录才能回复,可以选择微信账号登录