美文网首页
STM32重定向printf到串口(重写fputc不生效)

STM32重定向printf到串口(重写fputc不生效)

作者: 芋头CF | 来源:发表于2024-06-24 21:46 被阅读0次

    使用STM32开发,想用printf把输出打印到串口,需要重定向printf函数。
    网上一搜全都是重写fpuc的,但这只针对使用了MicroLIB的情况,如果你使用STM32CubeMX配置了CMake或者Makefile项目,这种方法是根本不可行的,重写fputc没有鸟用。
    这个时候需要重写_write函数,如下:

    /// 重写_write,重定向到日志输出串口
    int _write(int file, char *ch, int len)
    {
        HAL_UART_Transmit(&UART_LOG, (uint8_t *)ch, 1, 10);
        return 1;
    }
    

    如果你的波特率非常低,10ms都传不完一个字节,那就把HAL_UART_Transmit函数的最后一个参数(超时时间)改长一点。
    ————————————————
    同步发在CSDN:https://blog.csdn.net/markinstephen/article/details/139970116

    相关文章

      网友评论

          本文标题:STM32重定向printf到串口(重写fputc不生效)

          本文链接:https://www.haomeiwen.com/subject/blydcjtx.html