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

继续做收发实验:

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

相关推荐
秦苒&13 分钟前
【C语言指针一】从入门到通透:核心知识点全梳理(内存、变量、运算、const修饰)
c语言·开发语言·c++
AI营销快线13 分钟前
2025金融AI语音质检系统选型指南
笔记
我想我不够好。19 分钟前
第二次考试 12.8
单片机·嵌入式硬件
代码游侠20 分钟前
应用——统计文件字符数、单词数、行数
服务器·笔记·算法
hefaxiang21 分钟前
猜数字小游戏--用分支和循环实现
c语言·开发语言
EQ-雪梨蛋花汤28 分钟前
【Unity笔记】 WorldStreamer2指南——针对大世界的流式加载与优化
笔记·unity·游戏引擎
EXtreme351 小时前
【C语言/数据结构】零基础打造控制台游戏:贪吃蛇实战教程----链表与Win32 API的完美结合!
c语言·数据结构·链表·贪吃蛇·宽字符·win32 api·控制台编程
小李做物联网1 小时前
【物联网毕业设计】113.1基于单片机物联网图书馆监测系统嵌入式
stm32·单片机·嵌入式硬件·物联网
haiyu柠檬1 小时前
Ruby On Rails 笔记6——常用回调上
笔记·后端·ruby on rails
✎ ﹏梦醒͜ღ҉繁华落℘1 小时前
单片机基础知识(八)SRAM芯片---IS62WV51216 芯片
单片机·嵌入式硬件