我无法从我的
STM32 Nucleo 板上获取串行数据。几年前我设法让它工作,但出于某种原因,它现在对我不起作用。
我使用的
开发板是 NUCLEO-F413ZH,我使用 USB-TTL 串行电缆 (TTL-232R-3V3) 尝试将一些测试数据打印到超级终端 (RealTerm)。
我正在运行来自 STM32CubeF4 固件的 UART_printf 示例并修改了代码,如下所示:
主程序
uint8_t test_str[] = "Hello World And The Universe!rn";
而 (1)
{
HAL_UART_Transmit(&UartHandle, test_str, sizeof(test_str), 10);
HAL_延迟(1000);
}
主.h
#define USARTx USART2
#define USARTx_CLK_ENABLE() __HAL_RCC_USART2_CLK_ENABLE();
#define USARTx_RX_GPIO_CLK_ENABLE() __HAL_RCC_GPIOD_CLK_ENABLE()
#define USARTx_TX_GPIO_CLK_ENABLE() __HAL_RCC_GPIOD_CLK_ENABLE()
#define USARTx_FORCE_RESET() __HAL_RCC_USART2_FORCE_RESET()
#define USARTx_RELEASE_RESET() __HAL_RCC_USART2_RELEASE_RESET()
#define USARTx_TX_PIN GPIO_PIN_2
#define USARTx_TX_GPIO_PORT GPIOA
#define USARTx_TX_AF GPIO_AF7_USART2
#define USARTx_RX_PIN GPIO_PIN_3
#define USARTx_RX_GPIO_PORT GPIOA
#define USARTx_RX_AF GPIO_AF7_USART2
我将串行电缆连接如下:
NUCLEO-F413ZH TTL-232R-3V3
引脚 A2 黄线
Pin A3 橙线
GND 黑线
这些是我正在使用的 COM 端口设置:
TTL-232-3V3 RealTerm
COM3 端口:3
每秒位数:9600 波特:9600
数据位:7 数据位:7
奇偶校验:奇 奇偶校验:奇
停止位:1 停止位:1
流量控制:无流量控制:无
当我运行代码时,NUCLEO 上的 LD4 闪烁表示正在传输,但终端中根本没有任何活动。
我的电脑运行的是 Windows 11。