如何去重定义
STM32的printf类似函数呢?如何对其功能进行调试呢?
2021-11-30 11:15:23
最近在朋友那学到了如何重定义STM32的printf类似函数,在这做下记录:
调用C语言库函数文件具体是哪一个我忘记了,都加上吧 ^_^
#include //uart redirect fputc
#include //copy function
#include //va_start /vsnprintf /va_end function
1、功能函数:
#define DEBUG_UART &huart2 //串口调试口
/******************************************************************************************
*** 函数名称: Debug_Printf
*** 输入参数: 无
*** 返 回 值: 无
*** 说 明:自定义串口 printf功能
*** 功能说明:
*** 编者 时间 版本
*** XX 2020/12/8 V0.1
******************************************************************************************/
void Debug_Printf(UART_HandleTypeDef *huart, char *format, ...)
{
uint8_t uart_buff[256];
uint8_t *pStr = uart_buff;
uint16_t delay_max;
va_list ap;
va_start(ap, format); //初始化 ap 变量
vsnprintf((char *)pStr, sizeof(uart_buff), format, ap); //可变参数。用于向字符串中打印数据、数据格式用户自定义
va_end(ap); //允许使用了 va_start 宏的带有可变参数的函数返回
while((*pStr) != '