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

继续做收发实验:

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

相关推荐
Promise48510 小时前
贝尔曼公式的迭代求解笔记
笔记·算法
偶像你挑的噻11 小时前
13-Linux驱动开发-中断子系统
linux·驱动开发·stm32·嵌入式硬件
锦锦锦aaa12 小时前
【layout理解篇之:mos电阻】
经验分享·笔记
zore_c12 小时前
【C语言】带你层层深入指针——指针详解2
c语言·开发语言·c++·经验分享·笔记
koo36412 小时前
pytorch深度学习笔记
pytorch·笔记·深度学习
眠晚晚13 小时前
API攻防&系统攻防笔记分享
笔记·web安全·网络安全
偶像你挑的噻14 小时前
Linux应用开发-9-信号
linux·stm32·嵌入式硬件
丝斯201114 小时前
AI学习笔记整理(22)—— AI核心技术(深度学习6)
人工智能·笔记·学习
koo36414 小时前
pytorch深度学习笔记1
pytorch·笔记·深度学习
奔跑吧邓邓子14 小时前
【C语言实战(72)】C语言文件系统实战:解锁目录与磁盘IO的奥秘
c语言·文件系统·目录·开发实战·磁盘io