SocialButterfly 发表于 2025-8-20 11:10

USART 发送不正确

STM32F030F4P6 USART 发送不正确。使用 HAL 库实现 UART 功能。在这个过程中,我发现在 Tera Term 终端中能够接收到传输的数据,但这些数据与代码中发送的内容不一致。代码如下:


static void MX_USART1_UART_Init(void)

{

huart1.Instance = USART1;

huart1.Init.BaudRate = 9600;

huart1.Init.WordLength = UART_WORDLENGTH_8B;

huart1.Init.StopBits = UART_STOPBITS_1;

huart1.Init.Parity = UART_PARITY_NONE;

huart1.Init.Mode = UART_MODE_TX_RX;

huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;

huart1.Init.OverSampling = UART_OVERSAMPLING_16;

huart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;

huart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;

if (HAL_UART_Init(&huart1) != HAL_OK)

{

Error_Handler();

}

/* USER CODE BEGIN USART1_Init 2 */

/* USER CODE END USART1_Init 2 */

}


https://community.st.com/t5/image/serverpage/image-id/16804iAEB99802B4222DD9/image-size/large?v=v2&px=999

豌豆爹 发表于 2025-8-21 12:16

波特率不匹配?

duo点 发表于 2025-8-21 12:16

STM32F030的时钟配置可能未正确设置,导致实际波特率与预期不符。

onlycook 发表于 2025-8-21 12:17

可能误用了阻塞式发送(HAL_UART_Transmit)和非阻塞式发送(HAL_UART_Transmit_IT/HAL_UART_Transmit_DMA),导致数据未正确发送。

onlycook 发表于 2025-8-21 12:17

发送缓冲区未正确初始化或数据未正确填充。

七毛钱 发表于 2025-8-21 12:18

可能是硬件连接问题,检查硬件连接。

内政奇才 发表于 2025-8-21 12:18

中断或DMA冲突?

麻花油条 发表于 2025-8-21 12:19

看看是否是HAL库版本或初始化问题。
页: [1]
查看完整版本: USART 发送不正确