STM32H743xx串口1中断接收不定长数据并转发用HAL实现
编译器平台及例程说明
编译器平台说明
1. Toolchain : MDK-ARM Community Version: 5.30.0.0(Kile V5)
2. Encoding : Encode in UTF-8 without signature
3. Device Specific Packs : Keil.STM32H7xx_DFP.2.7.0.pack
4. Preprocessor Symbols Define : USE_HAL_DRIVER, STM32H743xx
USE_HAL_DRIVER : 允许使用HAL库驱动
STM32H743xx : STM32H743xx芯片
5. Chip Type : STM32H743VIT6, Flash:2MByte, ROM:1MByte
6. 在stm32h7xx_hal_conf.h文件中HSE_VALUE为外部高速振荡器,默认25MHZ。此值必须与硬件保持一致。
例程说明
1. STM32H743xx串口1中断接收不定长数据并将接收到的数据转发到上位机显示用HAL实现
一、宏定义说明
// PA9 -- MCU_USART1_TXD -- 串口1发送
// PA10 -- MCU_USART1_RXD -- 串口1接收
#define USART1_TXD_Pin GPIO_PIN_9
#define USART1_RXD_Pin GPIO_PIN_10
#define USART1_GPIO GPIOA
/* 串口1接收缓存大小 */
#define UART1_RXD_BUF_SIZE 480
二、变量的定义
UART_HandleTypeDef USART1_HandlerType = {
0};
//RxState[0..13] : 接收到的数据长度
//RxState[14] : (1)已接收到0x0D (0)未接收到0x0D
//RxState[15] : (1)已接收完成 (0)接收未完成
u16 RxState = 0; //串口1接收状态
static u8 RxBufIRQ[1] = {
0}; //串口1中断接收缓存
u8 __attribute__ ((aligned(4))) UART1_RXD_BUF[UART1_RXD_BUF_SIZE] = {
0}; //串口1接收缓存
三、串口初始化
/**********************************************************************************************************************************************
* 函数名 : vInit_USART_GPIO
* 描 述 : USART GPIO初始化
* 说 明 : 1. USRTA1 : PA9 PA10配置复用推完 上拉 高速
**********************************************************************************************************************************************/
static void vInit_USART_GPIO(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
__HAL_RCC_GPIOA_CLK_ENABLE(<

本文详细介绍了如何使用STM32CubeMX和HAL库在STM32H743xx微控制器上配置串口1,进行中断接收不定长数据,并将接收到的数据转发。通过设置宏定义、变量、串口初始化、中断处理和接收完成回调函数,实现了数据的稳定传输。在主循环中检查接收完成状态,将数据发送至上位机。
4587

被折叠的 条评论
为什么被折叠?



