用的ALITENTEK的把板子学习stm32.今天学到DMA部分,参考其编写的《stm32不完全手册》,在这一节作者留下了一个问题,就是在进行初始化stm32的DMA时非要定义一个局部变量作为缓冲……我仔细看了程序也觉得要这个缓冲真的没作用啊并且还减慢了数据的传输速度……最终弄明白了为什么……
其实这个缓冲可以去掉的,就是先对DMA_CCRx寄存器进行配置,然后再设置外设地址和存储器地址……或者就是还按作者的初始化顺序就是要在给CPAR寄存器送数据的前面适当的延时……
总体来看应该是时钟快慢的问题……我是初学者就只能通过实验来寻找解决方法,更深层的原因还是请大侠前来分析…… |