[STM32F0] USART 发送不正确

[复制链接]
SocialButterfly 发表于 2025-8-20 11:10 | 显示全部楼层 |阅读模式
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 */

}



豌豆爹 发表于 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库版本或初始化问题。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

40

主题

40

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部