- void LCD_Printf(u16 x, u16 y, u8 size, char *str, ...)
- {
- u16 tempx = x;
- va_list pArgs; //处理后面的三个点
- char *p;
- p = mymalloc(SRAMIN,6*32); //申请内存,p存放申请后的首地址
- va_start(pArgs, str);
- vsnprintf(p,6*32,str,pArgs); //格式化成字符串,处理 ... 多参数,一定要用v printf
- va_end(pArgs);
- while(x <= lcddev.width) //清除显示区域
- {
- LCD_ShowChar(x,y,' ',size,0);
- x = x + size/2;
- }
- x = tempx;
- while(x <= lcddev.width && (*p) != 0) //显示格式化后的字符串
- {
- LCD_ShowChar(x,y,*p,size,1);
- x = x + size/2;
- p++;
- }
- myfree(SRAMIN,p); //释放申请的内存,不释放会造成内存泄漏,要避免
- }
|