【网友经验分享】PE初始化DMA和串口

2020-02-20 21:05发布

本帖最后由 momo_li 于 2014-8-8 10:50 编辑

最近两个月都在断断续续的学着使用PE初始化DMA,很痛苦,先是手动初始化寄存器,然后反推PE的各项设置,最终总算是搞出来了。
教程写起来比较麻烦,先把程序发上来,还是PE10.4+IAR的,不过还使用了TKStudio,不得不说周公要把这个做成付费的编辑器肯定有钱途。

下面几点要注意:
1、关于PE中的源地址矫正,PE里面不允许设置为负值,可实际上却是可以设置为负值的。而且想要源地址不变只能是负值。注意,现在要实现这个功能要手动的做些工作。
2、另外如果想使用软件控制触发的话,不要在DMA SOURCE MUXING选项里面选择channel trigger,否则就会开启PIT触发(应该是这个源),这样软件触发就是失效了。
3:、initialization选项中不要选择,都则初始化时就会触发一次传输。
4:、串口会在复位的时候发送4个0x00,不过应该影响不大,毕竟一般都是有帧格式校验的。
5、例程是基于串口1的,发送缓冲区空标志触发DMA,由于这个标志位会一直置位,DMA_ERQ |= (1 << 0);        // 启动使用这句话来触发一次传送。
PE很强大,希望夏末的时候KDS和PE里面能把这个问题解决。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。