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