wrainp的笔记 https://passport2.21ic.com/?518140 [收藏] [复制] [RSS]

日志

1602中用vsprintf()显示

已有 1123 次阅读2008-4-14 16:25 |系统分类:单片机| 1602

今天怎么不能登录到论坛上去?真奇怪。莫非被黑掉了?


只好到这里留下问题了。这还是第一次在这里写日志...


网上copy了一个程序,写的不错。


用51做的1602液晶显示时


先定义了这样一个函数


void printf_1602(unsigned char *fmt,...)
{
        unsigned char buf[32];
        va_list vp;
        va_start(vp,fmt);
        vsprintf(buf,fmt,vp);
        write_str_1602(buf,0);
}



最后在主函数中这样调用
 printf_1602("A:%bd;H:%bu;M:%d",age,height,money);


其中%bd,%bu,分别是什么意思啊?还得慢慢找答案。


P.S.  对于vsprintf()和spintf()的区别和联系:


  vsprintf(char *buf,const char *format,valist arglist);


 sprintf(char *buf,const char *format,[argument]...);


自己的理解:都是输出字符到字符串,区别在于vsprintf()最后一个参数是指针,


而sprintf()最后一个参数不是。


 另外1602的换行指令是0xc0...


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)