
STM32F103单片机(五)——DMA 太冷了,先来吐槽下武汉的天气,我感觉冬天不是渐渐来的,而是突然到来的。回归主题,下面是今天的实验。 外部中断触发时,DMA向串口发送一次数据。 DMA是一个好东西,它不需要占用CPU的资源,只需要配置好之后初始化使能就可以将数据从一个地址空间快速复制到另一个地址空间,当DMA传输完成的时候产生一个中断。STM32有2个DMA控制器,一共12个通道,每个通道专门用来管理来自于一个或多个外设对寄存器访问的请求,参考STM32参考手册。从外设(TIMx、ADC、SPIx、IIC、USARTx)产生7个请求,通过逻辑或者输入到DMA控制器,这意味着同时只能有一个请求有效,DMA1请求一览表。 ![]() DMA2请求一览表。 ![]() 下面是DMA的库 ![]() DMA时钟 ![]() 同样,和之前一样,流程图。 ![]() 这里具体的代码我就不一一再细说了,只有DAM的初始化和设置我们没有写过,下面是DMA的初始化和设置。 ![]() 串口DMA的设置。 ![]() DMA发送使能,在外部中断中调用这个函数。 好了,今天就到这里了。 文章出处: 菜鸟硬件工程师小廖的成长日记 |