第十篇 DMA的使用
在STM32的控制器中,有这么一个东西,他工作的时候是不需要占用内核的,因此也给内核降低了工作量,提升了效率,这个家伙就叫做“DMA”。这节我们做个DMA的实验,由于手里的板卡比较简单,几乎可以说是最小系统了,在只利用板子本身内容的基础上,我们实现一个这样的功能:开发板上电的时候,LED灯亮,同时用串口发送数据,当数据发送完成时,灯灭。
由于功能已经实现,咱这次先上代码
上图是DMA初始化,为了能让整段代码一起入境,特意压小了,所以这分辨率,就原谅下哈
串口和LED的初始化,前面已经讲过了,这里就不在上镜了哈!
主函数来了
因为数据传输完就关灯,当然有中断函数
找到我们的数据手册,DMA支持USART1,如下图
这个是用DMA通信的相关信息,截图的一部分,具体的自己查看资料哈
这是发送地址寄存器的信息,这里你可以用基地址加上偏移量,也可以直接使用
具体信息如下哈
其实到这里基本上就将完了,这种都是几个最基本的配置叠加起来的功能,只要在配置的时候不要搞错信息,基本没问题