https://jingyan.baidu.com/article/86fae3466b65bc7c48121a3e.html
//自定义打印函数
void uart0_Printf( const char * format, ... )
{
uint8_t k=0;
char buf[128];
char *pbuf=NULL;
va_list args;
pbuf =buf;
va_start(args, format);
vsprintf(buf,format, args);
while(*(pbuf+k)!='\0')
{
M0P_UART0->SBUF =*(pbuf+k);//循环发送一个字节一个字节的发
k++;
delay1ms (2);
}
va_end (args);
}
https://jingyan.baidu.com/article/86fae3466b65bc7c48121a3e.html
想自己实现printf的不定参数就行格式化输出,比如printf("%d",1)
想重载这个printf函数
//自定义打印函数
void uart0_Printf( const char * format, ... )
{
uint8_t k=0;
char buf[128];
char *pbuf=NULL;
va_list args;
pbuf =buf;
va_start(args, format);
vsprintf(buf,format, args);
while(*(pbuf+k)!='\0')
{
M0P_UART0->SBUF =*(pbuf+k);//循环发送一个字节一个字节的发
k++;
delay1ms (2);
}
va_end (args);
}
void WF_Printf(const char * str, ...)
{
// if((DataBase._Run_Mode_Enum!=Run_Mode_Enum_Factory)||(DataBase.cfg.Cfg_Page_5.value._IsPut_Log))//在刚启动和配置输出log时,开始输出log
{
char buffer[bufsize]={0}; // 待打印字符串缓存
va_list args;
va_start(args, str);
vsnprintf(buffer,bufsize,str,args);
va_end(args);
Uart_Send_Data_By_Len(M0P_UART0, (uint8_t*)buffer,strlen((char*)buffer));//打印函数
}
}
void WF_Printf(const char * str, ...)
{
// if((DataBase._Run_Mode_Enum!=Run_Mode_Enum_Factory)||(DataBase.cfg.Cfg_Page_5.value._IsPut_Log))//在刚启动和配置输出log时,开始输出log
{
char buffer[bufsize]={0}; // 待打印字符串缓存
va_list args;
va_start(args, str);
vsnprintf(buffer,bufsize,str,args);
va_end(args);
Uart_Send_Data_By_Len(M0P_UART0, (uint8_t*)buffer,strlen((char*)buffer));//打印函数
}
}