STM32L031F6P6基于CubeMX的串口通信调试笔记

用CubeMX创建项目

本实例用的PA14、PA13两个引脚,LPUART1。

对串口参数进行设置:

开启串口中断:

时钟源设置成内部高频时钟:

对项目进行设置:

生成代码:

在串口初始化函数中加入

c 复制代码
__HAL_UART_ENABLE_IT(&hlpuart1,UART_IT_RXNE);

开启接收中断,如下:

stm32l0xx_it.c中串口中断处理函数代码修改成:

c 复制代码
  unsigned char tmp;

  if (__HAL_UART_GET_FLAG(&hlpuart1, UART_FLAG_ORE) != RESET)        /* UART接收过载错误中断 */
    {
        __HAL_UART_CLEAR_OREFLAG(&hlpuart1);                           /* 清除接收过载错误中断标志 */
        tmp = '?';
        HAL_UART_Transmit(&hlpuart1, &tmp, 1, HAL_MAX_DELAY);
		
    }

  if(__HAL_UART_GET_FLAG(&hlpuart1,UART_FLAG_RXNE)!=RESET)
	{
      // uint8_t ch;

      HAL_UART_Receive(&hlpuart1, &tmp, 1, HAL_MAX_DELAY); 
      HAL_UART_Transmit(&hlpuart1, &tmp, 1, HAL_MAX_DELAY);
	}

结果如下:

测试

用串口调试助手进行通讯实验现象如下:

其中的问号是在触发接收过载错误中断时发出的:

将波特率修改成9600

继续做收发实验:

这时接收数据与发送数据吻合。

相关推荐
记得多喝水o5 分钟前
百度网盘偷偷给电脑“降频”?
stm32·单片机·电脑
田甲33 分钟前
STM32L051实现内部EEPROM读写
stm32·单片机·嵌入式硬件·eeprom
灯琰133 分钟前
STM32 HAL库配置DMA加空闲中断接收串口数据
stm32·单片机·嵌入式硬件
中屹指纹浏览器44 分钟前
2026 指纹浏览器技术深度剖析:沙箱隔离与 IP 协同适配的实现方案
经验分享·笔记
被制作时长两年半的个人练习生1 小时前
首尾元素相同的间隔循环策略
c++·笔记·循环·ptx
曾浩轩1 小时前
跟着江协科技学STM32之5-1EXTI外部中断
科技·stm32·嵌入式硬件
今儿敲了吗1 小时前
计算机网络第三章笔记(三)
笔记·计算机网络
week_泽1 小时前
第2课:深度剖析AI Agent核心模块 - 学习笔记_2
人工智能·笔记·学习·ai agent
qq_401700411 小时前
MOS管开关电路上下拉电阻的作用
单片机·嵌入式硬件
南棱笑笑生1 小时前
20260113给飞凌OK3588-C开发板适配Rockchip原厂的Android14系统时点亮飞凌的7寸屏时适配CTP触摸屏FT5X06
单片机·嵌入式硬件·rockchip