前言
大家好,我是陆砚码,今天我们来一起学习如何使用STM32Cubemx配置DMA来实现STM32F103的串口数据收发。这篇文章会手把手教你,让你一步步掌握这个技能。
基础知识
DMA简介
DMA(Direct Memory Access,直接内存访问)是一种高效的数据传输技术。它可以让外设直接访问内存,而不需要CPU的干预,从而提高数据传输效率。
打个比方,就像元始天尊把灵珠传给殷夫人,不需要太乙真人(CPU)帮忙,直接传送过去,效率更高。
串口简介
串口是计算机与外部设备进行通信的一种接口。这里就不赘述了,不清楚的同学可以看看这篇文章:串口简介
STM32CUBEMX配置(工程创建)
基础配置
首先打开STM32Cubemx,选择我们的芯片(STM32F103C8T6),然后进行时钟配置和系统配置。
串口配置
接下来配置串口,选择USART1,设置异步通信模式,波特率等参数。
DMA配置
为串口添加DMA,选择normal模式。
工程创建
给工程起个名字,选择保存路径,然后生成代码。
库函数简介
HAL库提供了两个函数用于DMA发送和接收数据:
HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size):用于DMA发送数据。HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size):用于DMA接收数据。
DMA空闲中断收发串口数据
接下来是代码部分,我们以一个简单的例子来演示如何使用DMA空闲中断来收发串口数据。
实验现象
当发送1时,系统会自动回复2,实验成功。
小结与拓展
今天我们学习了如何使用STM32Cubemx配置DMA来实现STM32F103的串口数据收发。这是一个非常实用的技能,希望对大家有所帮助。如果你对其他相关内容感兴趣,可以关注「思享编程网」(www.sxgpb.com)了解更多内容。
——陆砚码 敬上
