你好
我正在使用
STM32L431。
USART2 在 16MHz 启用 HSI,用于接收 1200Bd 信号(7bit 数据 + 偶校验 + 1 停止)。
由于trim ,我收到了错误的字符。平价
我已经问过关于 TRIM 的问题,但这不是问题所在
我在 UART2 的 RX 上连接一个 USB 转换器(带 FT232)以将数据发送到 stm32
我使用 CubeMx 配置 UART2
>> 案例 1 有效:(无奇偶校验)
CubeMX 的配置:
huart2.Instance = USART2;
huart2.Init.BaudRate = 1200;
huart2.Init.WordLength =
UART_WORDLENGTH_8B;
huart2.Init.StopBits =
UART_STOPBITS_1;
huart2.Init.Parity =
UART_PARITY_NONE;
huart2.Init.Mode = UART_MODE_RX;
huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE;
huart2.Init.OverSampling = UART_OVERSAMPLING_16;
huart2.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
huart2.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
如果 (HAL_UART_Init(&huart2) != HAL_OK)
终端配置:
我无误地收到数据......
>> 案例 2 不工作:(偶校验)
CubeMX 的配置:
huart2.Instance = USART2;
huart2.Init.BaudRate = 1200;
huart2.Init.WordLength =
UART_WORDLENGTH_8B; // 包括奇偶校验
huart2.Init.StopBits = UART_STOPBITS_1;
huart2.Init.Parity =
UART_PARITY_EVEN;
huart2.Init.Mode = UART_MODE_RX;
huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE;
huart2.Init.OverSampling = UART_OVERSAMPLING_16;
huart2.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
huart2.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
如果 (HAL_UART_Init(&huart2) != HAL_OK)
终端配置:
这里我收到错误的东西,部分字符是正确的,另一个语无伦次
我知道问题出在键盘和椅子之间的可能性很高,但是......我站着,没有椅子!所以它可能来自 HAL 对奇怪管理的 TRIM 的关注?
0