STM32 HAL库开发学习笔记: USART1串口通讯(中断方式) IDE-STM32CubeIDE

本文详细介绍了使用STM32 HAL库进行USART1串口中断通信的配置与实现,包括设置异步中断模式、串口参数、中断服务函数以及遇到的问题和解决方法。通过中断方式,确保了在接收到数据后及时响应,避免了阻塞问题。
摘要由CSDN通过智能技术生成

STM32串口通讯有三种方式,分别为阻塞(轮询)、中断、DMA。这里将用中断的方式开发。

笔者也是刚入门STM32 HAL库开发,该笔记致希望于能帮到初学者,文中配置步骤、代码、实验现象均是笔者实践可行后所得,绝对真实有效。同时也希望大神前辈指出文中不足或者告之更好的开发方式,让初学者少走弯路!

目录

一、串口模式和配置

1、配置USART1为异步中断工作模式

2、串口参数设置并生成配置代码

二、代码编写

1、在main.c中定义缓存数组;

2、在main函数中打开接收中断;

3、在main.c中定义接收完成的回调函数;

4、在中断文件stm32f1xx_it.c中引用main.c中的接收缓冲数组(extern)和重新使能USART1接收中断。

三、实验现象

四、过程填坑


一、串口模式和配置

1、配置USART1为异步中断工作模式

2、串口参数设置并生成配置代码

 

二、代码编写

1、在main.c中定义缓存数组;

/* USER CODE BEGIN PV */

uint8_t OT_RxBuffer[20];

/* USER CODE END PV */
STM32CubeIDE中配置USART串口需要进行以下步骤: 1. 打开STM32CubeIDE,并创建一个新的工程。 2. 在工程导航器中,右键单击"Core"文件夹,选择"Add Component",然后选择"USART"组件。这将在工程中添加USART相关的文件和代码。 3. 在"Pinout & Configuration"选项卡中,选择你要使用的USART引脚。 4. 在"Configuration"选项卡中,配置USART的参数,包括波特率、数据位数、停止位等等。可以根据具体需求进行配置。 5. 在代码中,使用HAL库函数来初始化和配置USART,例如使用`HAL_UART_Init()`函数来初始化USART,使用`HAL_UART_MspInit()`函数来配置USART引脚等等。 6. 在代码中,根据需求来实现USART的发送和接收功能。可以使用轮询方式中断方式来发送和接收数据。如果使用中断方式,需要编写相应的中断回调函数,例如使用`HAL_UART_RxCpltCallback()`函数来处理接收完成中断。 在以上步骤中,引用提供了一些关键词,如"STM32F407VE"、"FreeRTOS"、"DMA"等,可以参考这些关键词在STM32CubeIDE中进行配置。同时,引用和引用提供了一些代码示例,可以参考这些示例来实现USART的配置和功能。 请注意,具体的配置和代码实现可能会因具体的硬件平台和需求而有所不同。建议查阅官方的文档和资料来获取更详细和准确的配置步骤。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [STM32F407VE+FreeRTOS+STM32CubeIDE+串口DMA+Freemodbus移植代码](https://download.csdn.net/download/qq_31272725/83163651)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [STM32CubeIDE学习笔记——USART(三种收发方式,printf重定向,工程配置)](https://blog.csdn.net/Reasally/article/details/126751127)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值