1.使用DMA,先分清楚是存储器到存储器,还是外设和存储器之间的传输。如果是存储器到外设,外设地址与外设的发送寄存器关联;如果是外设到存储器,那就是外设地址与外设的接收寄存器关联。
2.根据传输的数据长度选择是单数据模式和多数据模式
连续的外设请求,要配置为循环模式。如果开启循环模式(置位寄存器 DMA_CHxCTL 的 CMEN 位),传输的数据总量必须保证同时是存储器突发传输数据总量和外设突发传输数据总量的整数倍,否则将不能保证数据的正确性。
如果配置成了循环模式,除了DMA访问SPI外还有其它直接调用,记得用完DMA传输就disable一下DMA的SPI enable
突发传输–不能超过 1KB 的地址边界,否则将会产生传输错误并响应至主机。如果数据太多了,会拆分为单一传输。
DMA要是传输的二维数组,要先存放到一维数组里面,除非该MCU的DMA支持传输二维数组。
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/m0_38038158/article/details/143360252
|