本文章主要探讨如何使用STM32中HAL库的 UART_Receive_IT非阻塞接收数据。其他网络教程(包括正点原点相关教程)可能个人原因无法完全理解,苦苦挣扎后才完成非阻塞UART接收。Yume:MacOS在VSCode中优雅的编写STM32(HAL库)zhuanlan.zhihu.com
希望可以通过不同的视角能更好的总结分享如何使用HAL库中的非阻塞UART。关于如何配置UART的问题本文不做具体介绍,需要这部分内容的可以参考其他分享者的文章。另外,如希望在MacOS或Linux平台优雅的编写、烧录STM32代码的可以参考我另外两篇文章。
1 通过STM32CubeMX初始化并生成工程目录
通过STM32CubeMX可以很轻松的完成配置,网络上也有很多很优秀的分享者写的教程。同时也可以参考我的另一篇文章(MacOS、Liunx用户也可作为参考)进行相关的配置
Yume:MacOS基于STM32CubeMX、Makefile和OpenOCD的Stm32交叉编译环境搭建zhuanlan.zhihu.com2 通过CoolTerm与STM32通信
Roger Meier's Freewarefreeware.the-meiers.org具体使用方法,可以在网络上找到很多教程,基本方法就是设置好对应的如波特率、有无奇偶校验位等。需要特别指出的是,此软件发送"ASCII"是原生发送,不会自动添加额外的结束符(也可能是我没有配置)。
3 HAL库中的非阻塞UART
可以在工程目录"Drivers/CMSIS/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c"中看到所有关于UART的HAL库函数使用方法。其中我们重点关注4个函数"UART_Receive_IT