单片机如何优雅的使用printf

发布时间 2023-06-30 16:00:59作者: 不想解决BUG的李优秀

前言

在设备研发过程中,经常会遇到调试信息输出问题,在查找相关资料后,发现单片机也可以实现优雅的使用printf函数

方法

点击查看代码
//添加代码

#if 1
#pragma import(__use_no_semihosting)
//标准库需要支持函数
struct __FILE
{
    int handle;
};

FILE __stdout;

//定义_sys_exit()以避免使用半主机模式
void _sys_exit(int x)
{
    x = x;
}


//重定义fput()函数。UART5:根据需求更改串口(USART1-USART3、UART4-UART5)
int fputc(int ch, FILE *f)
{
    /*将printf内容发往串口*/
    USART_SendData(UART4, (uint8_t)ch);

    while(USART_GetFlagStatus(UART4, USART_FLAG_TC) == RESET);

    return ch;
}

#endif

备注

添加代码后,还是不能优雅的使用printf

解决方法

勾选micorLib