news 2026/4/15 19:31:01

[STM32L5] 【STM32L562 DK试用】5、串口+DMA的妙用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
[STM32L5] 【STM32L562 DK试用】5、串口+DMA的妙用

对于通信接口来说有很多种,分为串行接口和并行接口,一般是用于数据传输的,我们常用的有USART、SPI、I2C、USB、CAN这些,今天我们就来聊一聊串口。
串口作为一种广泛应用的通讯接口,以其低成本、易用性和简洁的通信线路著称,能够实现设备间的双向通信。通过单片机的串口,不仅可实现单片机之间的互联,还能通过接口芯片实现单片机与电脑、各类模块的通信,从而显著扩展单片机的应用领域,并大幅提升单片机系统的硬件性能。双向串口通信有两根通信线(发送端TX和接收端RX),并且TX与RX要交叉连接,当只需单向的数据传输时,可以只接一根通信线。
现在的单片机一般都有不止一个串口,我们看一下这次使用的STM32L562的串口分布:

可以看到这里面就有5个串口,有的变为UART,有的是USART,UART使用的是异步的通讯方式,USART则是在UART的基础上增加了时钟。
串口通讯的基本参数:
·波特率:串口通讯的速率
·起始位:标志一个数据帧的开始,且固定是低电平
·数据位:数据帧的有效载荷,1为高电平,0为低电平
·校验位: 用于数据验证,根据数据位计算而来(奇偶校验)
·停止位:用于数据帧间隔,固定为高电平
我们本次要使用的是USART1,主要原因如下:

STlink的接口连接的是PA9和PA10,对应的就是USART1;

这里需要注意,默认开启的引脚不是PA9和PA10,我们需要找到引脚修改一下,串口的默认参数是115200,8位,1停止位,无校验位,咱们可以柑橘需要修改;
接下来打开DMA和中断,我们这里通过串口空闲中断和DMA传输的方式进行接受,通过轮询的方式进行发送,空闲中断是在一组数据接收完成后产生的,也就是说可以接受不定长的数据,其他时候不触发中断,这个时候可以有效实现系统资源的优化利用。
接下来我们看一下软件方面的配置,首先是初始化阶段,要使能空闲中断:

复制

  1. __HAL_UART_ENABLE_IT(&huart1,UART_IT_IDLE);
  2. HAL_UARTEx_ReceiveToIdle_DMA(&huart1,rx_buffer,200);


接下来就是在中断服务函数中处理了:

复制

  1. void USART1_IRQHandler(void)
  2. {
  3. /* USER CODE BEGIN USART1_IRQn 0 */
  4. IDLE_flag =__HAL_UART_GET_FLAG(&huart1,UART_FLAG_IDLE);
  5. if((IDLE_flag != RESET))
  6. {
  7. __HAL_UART_CLEAR_IDLEFLAG(&huart1);
  8. HAL_UART_DMAStop(&huart1);
  9. __HAL_UART_DISABLE_IT(&huart1, UART_IT_IDLE);
  10. uint16_t rx_length = sizeof(rx_buffer) - __HAL_DMA_GET_COUNTER(&hdma_usart1_rx);
  11. HAL_UART_Transmit(&huart1, (uint8_t *)&rx_length, 1, 0xFFFF);
  12. __HAL_UART_ENABLE_IT(&huart1,UART_IT_IDLE);
  13. HAL_UARTEx_ReceiveToIdle_DMA(&huart1,rx_buffer,200);
  14. }
  15. /* USER CODE END USART1_IRQn 0 */
  16. HAL_UART_IRQHandler(&huart1);
  17. /* USER CODE BEGIN USART1_IRQn 1 */
  18. /* USER CODE END USART1_IRQn 1 */
  19. }


注意空闲中断没有中断回调函数,我们只能在中断中直接处理,实现的基本功能是收到不定长的数据后,返回长度,效果如下:

---------------------
作者:Bymyself
链接:https://bbs.21ic.com/forum.php?mod=viewthread&tid=3440878
来源:21ic.com
此文章已获得原创/原创奖标签,著作权归21ic所有,任何人未经允许禁止转载。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/14 1:43:01

不容错过!低查重的AI教材生成工具,让AI写教材更简单

在教材编写的过程中,如何在原创性与合规性之间找到良好的平衡,始终是一个重要的焦点。许多创作者在参考优秀教材的丰富内容时,常常担心查重率会超出标准;而在尝试自己创作知识点时,又可能会面临逻辑不清和内容不准确的…

作者头像 李华
网站建设 2026/4/8 12:36:11

亲测好用8个降AIGC平台推荐 千笔·专业降AI率智能体

AI降重工具:让论文更自然,更安心 在当前学术写作中,越来越多的学生和研究人员开始关注论文的AIGC率问题。随着AI技术的普及,许多论文不可避免地带有明显的AI痕迹,这不仅影响了论文的整体质量,也可能导致查…

作者头像 李华
网站建设 2026/4/16 2:22:12

CnOpenData 中国历史文化城市名单

不可移动文物是先民在历史、文化、建筑、艺术方面创作的遗产或遗址,包含古建筑物、传统聚落、古市街,考古遗址及其他历史文化遗迹,涵盖政治、军事、宗教、祭祀、居住、生活、娱乐、劳动、社会、经济、教育等多方面领域。不可移动文物数据收录…

作者头像 李华
网站建设 2026/3/23 3:56:20

高端橱柜拉篮品牌排行,九大品牌实力解析,小空间收纳如何选?

选择一款高品质的橱柜拉篮,是打造高效、整洁厨房的关键一步。优秀的拉篮品牌不仅注重产品耐用性,更在空间规划、人性化设计上精益求精。面对市场上琳琅满目的品牌,消费者常感困惑。本文基于品牌影响力、市场口碑、产品创新与工艺品质等多个维…

作者头像 李华
网站建设 2026/3/25 10:01:37

高性价比拉篮品牌推荐,五款实用之选,优化厨房空间

在小户型厨房日益普遍的今天,如何有效利用每一寸空间,实现整洁高效的收纳,成为许多家庭的核心痛点。拉篮,作为橱柜内部的“空间魔术师”,其重要性不言而喻。一款设计合理、质量过硬的高性价比拉篮,不仅能最…

作者头像 李华