当前位置:   article > 正文

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

stm32 fputc 未生效

使用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;
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

如果你的波特率非常低,10ms都传不完一个字节,那就把HAL_UART_Transmit函数的最后一个参数(超时时间)改长一点。

同步发布在简书:https://www.jianshu.com/p/0bd6ee925e1c?v=1719323174816

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号