美文网首页我爱编程
stm32+freeRTOS+printf重映射串口

stm32+freeRTOS+printf重映射串口

作者: FitTiger | 来源:发表于2016-08-09 15:03 被阅读0次

    stm32Cub极大的方便了我们对于stm32单片机的使用,包括GPIO、freeRTOS、FATFS(文件管理)等功能,但有些设置还须我们手动配置,如串口打印映射问题,下面我们以串口2为例,重新映射。

    在main() 函数之前 添加以下代码

    #ifdef __GNUC__
      /* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf
         set to 'Yes') calls __io_putchar() */
      #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
    #else
      #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
    #endif 
    

    之后添加

    PUTCHAR_PROTOTYPE
    {
        HAL_UART_Transmit(&huart2,(uint8_t *)&ch,1,0xFFFF);
        
        return ch;
    }
    

    huart2可更改,freeRTOS系统初始化定义。

    串口打印在调试时十分有用,但串口打印极大的耗费系统资源,影响系统实时性,因此在release 版本中需要将串口打印去掉,如何方便的进行设置,请看如下代码:

    #define  configDebugPrintf   1
    #if   (1 == configDebugPrintf)
        #define  Debug_printf(fmt,args...)   printf(fmt"----[file name = %s  line num = %d]""\n",__FILE__,__LINE__,##args)
    #else
        #define  Debug_printf(fmt,args...)
    #endif
    

    --FILELINE为stm32库自定义的文件和行号

    相关文章

      网友评论

        本文标题:stm32+freeRTOS+printf重映射串口

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