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

继续做收发实验:

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

相关推荐
雍凉明月夜5 分钟前
c++ 精学笔记记录Ⅲ
c++·笔记·学习
l3538o675738 分钟前
国产POE降压恒压芯片方案选型:48v-52v输入转5v-12v/1-3A电源芯片
人工智能·科技·单片机·嵌入式硬件·电脑·智能家居
v先v关v住v获v取8 分钟前
建筑材料上楼搬运机结构设计cad3张+三维图+设计说明书
科技·单片机·51单片机
JSMSEMI1110 分钟前
SC6D10170H-JSM 碳化硅肖特基二极管
stm32·单片机·嵌入式硬件
wxh_无香花自开14 分钟前
Linux 笔记:rpm命令
linux·运维·笔记·rpm
li星野16 分钟前
打工人日报#20251218
笔记
阿蒙Amon20 分钟前
JavaScript学习笔记:17.闭包
javascript·笔记·学习
LinHenrY122724 分钟前
初识C语言(编译和链接)
c语言·开发语言·蓝桥杯
l1t25 分钟前
利用小米mimo为精确覆盖矩形问题C程序添加打乱函数求出更大的解
c语言·开发语言·javascript·人工智能·算法
想不出名字ಥ_ಥ26 分钟前
STM32学习笔记--01学会如何点亮一颗LED灯
笔记·stm32·学习