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
波特率不匹配? STM32F030的时钟配置可能未正确设置,导致实际波特率与预期不符。 可能误用了阻塞式发送(HAL_UART_Transmit)和非阻塞式发送(HAL_UART_Transmit_IT/HAL_UART_Transmit_DMA),导致数据未正确发送。
发送缓冲区未正确初始化或数据未正确填充。 可能是硬件连接问题,检查硬件连接。 中断或DMA冲突? 看看是否是HAL库版本或初始化问题。
页:
[1]