|
我先在知道想要在51單片機(jī)使用printf有兩種辦法,一種是用庫自己的printf,一種是寫自己的printf,不過都很簡(jiǎn)單,
自己寫printf。
-
- void sendstring(unsigned char *string)//這個(gè)是字符串發(fā)送函數(shù)
- {
- while(*string!='\0') //判斷是否到字符串的尾端
- {
- sendbyte(*string);
- string++;
- }
- }
- void uart_printf(char *fmt,...)//這個(gè)是我們的printf函數(shù)
- {
- va_list ap;//typedef char *va_list; va_list是char型的指針
- char xdata string[1024];//訪問外部RAM 兩字節(jié)對(duì)齊
- va_start(ap,fmt);//這個(gè)函數(shù)的功能是,找到第一個(gè)可變形參的地址,并把地址賦給ap
- vsprintf(string,fmt,ap);//其實(shí)這個(gè)函數(shù)才是核心函數(shù),沒研究。。。
- sendstring(string);//這個(gè)函數(shù)就是發(fā)送字符串函數(shù),通過上一個(gè)函數(shù),就把該提取的東西都提取了
- va_end(ap);//結(jié)束函數(shù)
- }
復(fù)制代碼 |
|