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

继续做收发实验:

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

相关推荐
我们从未走散1 小时前
JVM学习笔记-----类加载
笔记·学习
STC_USB_CAN_80511 小时前
实战 AI8051U 音视频播放:USART-SPI→DMA-P2P→SPI+I2S 例程详解
单片机·嵌入式硬件·音视频
ShiMetaPi1 小时前
【GM3568JHF】FPGA+ARM异构开发板烧录指南
stm32·单片机·嵌入式硬件
前路不黑暗@2 小时前
C语言:操作符详解(二)
c语言·开发语言·经验分享·笔记·学习·学习方法·visual studio
蜡笔小电芯2 小时前
【STM32】STM32H750 CubeMX 配置 USB CDC 虚拟串口笔记
笔记·stm32·嵌入式硬件
快乐zbc3 小时前
数学建模Topsis法笔记
笔记·数学建模
yiqiqukanhaiba3 小时前
STM32学习笔记14-I2C硬件控制
笔记·stm32·学习
悠哉悠哉愿意3 小时前
【Python语法基础学习笔记】if语句
笔记·python·学习
西工程小巴4 小时前
实践笔记-VSCode与IDE同步问题解决指南;程序总是进入中断服务程序。
c语言·算法·嵌入式
Ronin-Lotus4 小时前
嵌入式硬件篇---Buck&Boost电路
单片机·嵌入式硬件