关于HAL库的printf的重定向

因为需要知道板子是否有宕机情况,并且有时候需要打印一些调试信息,用printf就十分方便了。

但是我发现,这种很基础很基础的问题,每次调都要费一费劲,真让人恼火!

我记下来,下次再不一次成功就直播吃篮球!

找一个文件加入下面的代码

int fputc(int ch,FILE *f)

{
    uint32_t temp = ch;

    HAL_UART_Transmit(&huart3,(uint8_t *)&temp,1,1000);        //huart3是串口的句柄
    HAL_Delay(2);

    return ch;
}

然后在调用printf的文件中包含头文件 #include <stdio.h>

上面是我按照百度的操作步骤,可是我那个串口怎么都出不来字符串。这么简单的操作,怎么就出不来,我还一直找线的问题。不过确实串口不行要找线接没接对,不过我这线路一直都能用啊。

好几次无果,然后我才想起来我用的串口是485,要控制控制管脚啊喂!

int fputc(int ch,FILE *f)

{
    uint32_t temp = ch;

    HAL_GPIO_WritePin( GPIOA, GPIO_PIN_11, GPIO_PIN_SET );
    HAL_UART_Transmit(&huart3,(uint8_t *)&temp,1,1000);        //huart3串口的句柄
    HAL_GPIO_WritePin( GPIOA, GPIO_PIN_11, GPIO_PIN_RESET );
    HAL_Delay(2);

    return ch;
}

我也是佛了

发布了26 篇原创文章 · 获赞 0 · 访问量 3006

猜你喜欢

转载自blog.csdn.net/nianzhu2937/article/details/99455805