STM32CubeMX使用串口中断方式实现串口通信

本文介绍了如何使用STM32CubeMX创建工程,配置USART1串口为115200波特率的中断方式通信。通过设置时钟、GPIO和NVIC中断,导出工程并在Keil中开发代码。实现STM32发送“hello windows!”到上位机(Win10串口助手)。详细讲解了代码编写、电路连接、烧录及结果展示,强调中断方式通信的优势。
摘要由CSDN通过智能技术生成

一、内容介绍

完成一个STM32的USART串口通讯程序(采用中断方式),要求:

1)设置波特率为115200,1位停止位,无校验位;

2)STM32系统给上位机(win10)连续发送“hello windows!”。win10采用“串口助手”工具接收

二、CubeMX生成工程

1)创建工程

首先,打开stm32CubeMX,创建一个新的工程,选择所需芯片;
接下来需要对该工程进行一些设置:
①时钟配置
点击左侧System Core,点击“RCC”,将HSE设置为外部晶振;
在这里插入图片描述
②设置串口
点击 Connectivity选择USART1串口,将Mode设置为异步通信,可见波特率为115200Bit/s,数据长度为8Bits等参数,以及芯片上的GPIO端口也设置成了对应的形式;

使用STM32CubeMX进行串口中断通信接收时,首先需要在工程设置中进行一些配置。首先,打开STM32CubeMX并创建一个新的工程,选择所需的芯片。然后,需要对该工程进行一些设置。 首先,在时钟配置中,点击左侧的System Core,然后点击"RCC",将HSE设置为外部晶振。接下来,在Connectivity中选择USART1串口,将Mode设置为异步通信,设置波特率为115200Bit/s,数据长度为8Bits等参数,并将芯片上的GPIO端口设置为对应的形式。 由于采用的是串口中断方式,所以需要勾选NVIC中的USART1 global interrupt选项。然后,在时钟树设置中,将HCLK设置为72MHZ。 在代码中,可以使用HAL_UART_Transmit()函数进行串口发送数据,使用超时管理机制。可以使用HAL_UART_Receive()函数进行串口接收数据,同样使用超时管理机制。还可以使用HAL_UART_Transmit_IT()函数进行串口中断模式发送,使用HAL_UART_Receive_IT()函数进行串口中断模式接收。另外,还可以使用HAL_UART_Transmit_DMA()函数进行串口DMA模式发送,使用HAL_UART_Transmit_DMA()函数进行串口DMA模式接收。 在main函数后面,需要添加中断回调函数void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart),该函数是串口接收中断的回调函数。在该函数中,可以判断发生接收中断的串口,并将接收完成标志RxFlag置为1。 综上所述,以上是使用STM32CubeMX进行串口中断通信接收的配置和代码示例。 #### 引用[.reference_title] - *1* [STM32CubeMX使用串口中断方式实现串口通信](https://blog.csdn.net/boomboomy/article/details/121170004)[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^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [STM32CubeMX实现串口中断通信](https://blog.csdn.net/qq_45945548/article/details/121153469)[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^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值