使用SPI驱动st7789v屏幕,按照i2s Demo写了一个链式DMA发送SPI数据的Demo,实测传一会SPI就停止了。看DMA的传输字节数寄存器,大概只传了2042个字节SPI通道寄存器的bit0就清零了。想请教一下有人知道什么原因吗?
查看更多
DMA的链表模式使用可以看下这个简单说明。http://ask.winnermicro.com/article/194.html其实SPI只有20M的时钟,驱屏速度不够快,驱屏可以参考这个SDK里面的spi使用,用的是SDIO master的spi模式。https://gitee.com/beewu123/w80x-sdk-lcd
发布 问题
分享 好友
手机 浏览
回到 顶部
好的,谢谢!我参考一下。
貌似是SPI收发一次最多只支持65535个clock的原因,一次传输的总clock超过通道寄存器CH_CFG[18:3]的值就停止了,需要链表DMA每次中断的时候再重新配置SPI发送才行。这样看好像SPI对超过65535/8≈8KB的数据不能实现DMA一次连续传输,需要分多次传输才行,不知道这样理解对不对。
@hanks 是的,单次最多65535个clock。