ch582 不支持不定参数的宏 加上不定参数就编译不通过了 这是编译器支持的 头文件 #include "stdarg.h" 这是不定参数的宏 加上不定参数就编译不通过了 怎么解决

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);
}

图片.png





图片.png



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);
}

图片.png







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));//打印函数        
    }
}







图片.png








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));//打印函数        
    }
}




CH582 我移植不成功  编译不通过  希望 写一个例子发我邮箱   谢谢了  个人信息保护,已隐藏


已发送,注意查收。


只有登录才能回复,可以选择微信账号登录