我先在知道想要在51单片机使用printf有两种办法,一种是用库自己的printf,一种是写自己的printf,不过都很简单,
自己写printf。
-
- void sendstring(unsigned char *string)//这个是字符串发送函数
- {
- while(*string!='\0') //判断是否到字符串的尾端
- {
- sendbyte(*string);
- string++;
- }
- }
- void uart_printf(char *fmt,...)//这个是我们的printf函数
- {
- va_list ap;//typedef char *va_list; va_list是char型的指针
- char xdata string[1024];//访问外部RAM 两字节对齐
- va_start(ap,fmt);//这个函数的功能是,找到第一个可变形参的地址,并把地址赋给ap
- vsprintf(string,fmt,ap);//其实这个函数才是核心函数,没研究。。。
- sendstring(string);//这个函数就是发送字符串函数,通过上一个函数,就把该提取的东西都提取了
- va_end(ap);//结束函数
- }
复制代码 |