我正在使用“NUCLEO-U575ZI-Q”
开发板并使用
STM32CubeIDE 1.6.1 进行编译。我想将 PC10 引脚用作单线(半双工)UART 引脚,并使用 CubeMX 生成具有以下设置的代码:
模式:单线(半双工)
硬件流控制:禁用
波特率:57600 Bits/s
字长:8 位(包括奇偶校验)
奇偶性:无
停止位:2
数据方向:接收和发送
过采样:16 个样本
单个样本:禁用
时钟预分频器:1
Fifo Mode:先进先出模式禁用
Txfifo Threshold: 1 八全配置
Rxfifo Threshold: 1 八全配置
自动波特率:禁用
Tx 引脚有效电平反转:禁用
Rx 引脚有效电平反转:禁用
数据反转:禁用
TX 和 Rx 引脚交换:禁用
超限:启用
DMA 出现 RX 错误:启用
MSB 优先:禁用
当我尝试以下代码时,似乎 UART4-> ISR 寄存器中的 ORE 位(溢出错误)随后被设置(顺便说一句,该语句有效,即它在 Teraterm 中显示 Hello):
HAL_UART_Transmit(&huart4, (const uint8_t*)"rnHello", strlen("rnHello"), 100);
在 CubeMX 中启用“UART4 全局中断”没有帮助,我仍然遇到溢出错误。这是一个问题,因为如果我,例如,之后接收 UART,那么它会由于溢出错误而自动失败。我究竟做错了什么?