实现自己的printf函数
以下代码仅供参考,使用时需要根据不同的单片机进行匹配和修改,仅供有一定能力的人进行学习,不提供技术支持
void ScreenPrintf(const char *cmd, ...)
{
uint8_t txt[30]; //文本数组
uint8_t *txt_p; //文本数组指针
memset(&txt,0,sizeof(txt));
memset(&txt_p,0,sizeof(txt_p));
va_list args; //定义一个va_list类型的变量,用来储存单个参数
va_start(args,cmd); //使args指向可变参数的第一个参数
vsprintf((char *)txt, (const char *)cmd, args);
va_end(args);
txt_p = txt;
while(*txt_p!='\0')
{
USART_SCREEN_write(*txt_p);//这里修改成你单片机写入串口单字节的函数
txt_p++;
}
USART_SCREEN_write(0xff);//这里修改成你单片机写入串口单字节的函数
USART_SCREEN_write(0xff);//这里修改成你单片机写入串口单字节的函数
USART_SCREEN_write(0xff);//这里修改成你单片机写入串口单字节的函数
}
//使用时ScreenPrintf("n0.val=%d",MyData); //一次性发完命令和结束符