You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

STM32F401RCT6(黑pill)USART1串口通信故障求助

STM32F401RCT6 USART1 串口发送失败排查方案

硬件排查步骤

  • 确认引脚连接:USART1 TX对应PA9,需连接到USB转串口模块的RX引脚(交叉连接),同时必须保证开发板与PC端串口模块共地,否则信号无法正常传输。
  • 测试线路连通性:用万用表二极管档检测PA9引脚到USB转串口RX引脚的通路,排除虚焊、线路断裂问题。
  • 检查USB转串口模块:换一个已知正常的USB转串口模块测试,排除模块损坏可能。

软件配置检查

时钟配置

  • 必须确保USART1和GPIOA的时钟已正确使能:
    标准库示例:
    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
    
    HAL库示例:
    __HAL_RCC_GPIOA_CLK_ENABLE();
    __HAL_RCC_USART1_CLK_ENABLE();
    

GPIO复用配置

  • PA9需配置为复用推挽输出,并正确映射到USART1:
    标准库示例:
    GPIO_InitTypeDef GPIO_InitStruct;
    GPIO_InitStruct.GPIO_Pin = GPIO_Pin_9;
    GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF;
    GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;
    GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP; // 可选上拉,增强信号稳定性
    GPIO_Init(GPIOA, &GPIO_InitStruct);
    // 关键:配置引脚复用映射
    GPIO_PinAFConfig(GPIOA, GPIO_PinSource9, GPIO_AF_USART1);
    
    注意:不要将PA9配置为普通GPIO输出模式,必须启用复用功能。

USART初始化参数

  • 确保波特率、数据位、停止位、校验位与PC端串口工具完全一致,示例配置(9600波特率、8N1):
    标准库示例:
    USART_InitTypeDef USART_InitStruct;
    USART_InitStruct.USART_BaudRate = 9600;
    USART_InitStruct.USART_WordLength = USART_WordLength_8b;
    USART_InitStruct.USART_StopBits = USART_StopBits_1;
    USART_InitStruct.USART_Parity = USART_Parity_No;
    USART_InitStruct.USART_Mode = USART_Mode_Tx;
    USART_InitStruct.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
    USART_Init(USART1, &USART_InitStruct);
    // 最后必须启用USART1
    USART_Cmd(USART1, ENABLE);
    

发送逻辑检查

  • 发送数据时必须等待发送完成标志,避免数据未发送就退出:
    标准库单字节发送示例:
    void USART1_SendChar(uint8_t ch)
    {
        // 等待发送寄存器为空
        while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);
        USART_SendData(USART1, ch);
        // 等待发送完成(可选,但确保数据完全发出)
        while(USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);
    }
    

额外排查点

  • 检查开发板电源:确保3.3V供电稳定,避免因电压不足导致外设工作异常。
  • 复位程序:重新烧录程序并复位开发板,排除程序运行异常。
  • 引脚冲突:确认PA9未被其他外设占用(比如定时器复用功能)。

若以上步骤无法解决问题,请提供你的时钟初始化、GPIO配置、USART初始化及发送数据的完整代码片段,以便进一步定位问题。

内容的提问来源于stack exchange,提问作者محمود أحمد

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 08:07:01