導航:首頁 > 操作系統 > 單片機printf函數的條件是

單片機printf函數的條件是

發布時間:2023-08-06 05:06:08

單片機c的輸出函數putchar(char c)

printf函數是調用putchar函數輸入;
而putchar應該是先判斷TI是否為1,不為1則等待為1。如果為1則清0,然後送出一個字元。而單片機上電復位後TI是為零的, 因此你如果直接使用printf函數,你的程序就會在putchar函數中等待TI為1。這時你的程序就相當於直接死掉了。可以再用這兩個函數的時候先將TI初始話為1.就可以使用了,在keil中可在串口輸出口觀察到。

② 51單片機C語言中使用printf函數需要設置什麼

其實和直接的串口發送是一樣的#include
<intrins.h
包含進去tp=adcread(adr);讀取ad轉換的值sprintf(str,
"ad
result
is:
%dmv
\r",
tp);str是個char型數組再調用你編寫的串口發送字元串程序發送strvoid
sentstr(uchar
*str){
while(1)
{
if(*str='\0')break;
putbuffer(*str++);
}}sentstr(str);
51單片機中沒有printf這個函數,你如果想用串口發送的話,要自己去寫一個串口發送函數就可以了。

③ 關於51單片機串口中printf()的使用的問題

printf 函數在單片機中要重定向到串口,printf 調用標准庫函數 ,你需要重寫fputc() 這個c標准庫函數

④ c51中 printf怎用

是這樣的,keil的stdio.h提供了一堆函數,大致分兩類,一類是通過串口在上位機上輸入輸出,另一類是指定一個指針變數,向其輸入輸出,這樣便可以將得到的字元數組指針的內容輸出到LCD一類設備上了,也可通過指針獲得按鍵輸入。
對於一類,你必須得軟體初始化串口,硬體與電腦連接好,然後利用windows的超級終端就可以顯示單片機中程序里的printf等函數列印出的內容了,你也可以使用getchar獲得超級終端的按鍵碼。(當然也可以使用串口助手之類軟體代替超級終端,注意波特率,數據位,校驗位,等設置要保持一致)
對於第二類,是不用初始化串口的,因為跟串口沒任何關系,你只要用指針虛擬設備就可以了,輸入輸出都是你自己做的硬體。
附串口初始化程序:
#define T1_INIT_VALUE 0x0D //定時器1初始值設定 [email protected]
void UartInit(void) {
SCON = 0x50; //8位數據,可變波特率
TMOD &= 0x0f; //清除定時器1模式位
TMOD |= 0x20; //設定定時器1為8位自動重裝方式
TL1 = T1_INIT_VALUE; //設定定時初值
TH1 = T1_INIT_VALUE; //設定定時器重裝值
ET1 = 0; //禁止定時器1中斷
TR1 = 1; //啟動定時器1
ES = 0; //禁止串列口中斷
TI = 1; //必須置高TI,RI
RI = 1;
puts("Uart Initialize Success!");
// *.調用printf之前應該關閉串口中斷使能
}

閱讀全文

與單片機printf函數的條件是相關的資料

熱點內容
編譯sdk如何輸出bin文件 瀏覽:671
如何用html5開發app 瀏覽:135
怎麼隱藏蘋果的app 瀏覽:320
上海捷豹空氣壓縮機 瀏覽:451
51單片機換行 瀏覽:733
哪裡可以快速學看建築圖紙app 瀏覽:496
內部排序的演算法比較 瀏覽:177
伺服器如何定期執行指令 瀏覽:931
python下載python腳本 瀏覽:297
台達plc遠程編程 瀏覽:263
雲計算的後台伺服器 瀏覽:589
windows7的我的電腦咋創建文件夾 瀏覽:492
去視頻水印的app哪個好用 瀏覽:384
doc轉為pdf 瀏覽:48
華為加密壁紙怎麼提取 瀏覽:52
曲線命令的描述 瀏覽:454
php模板怎麼修改 瀏覽:999
單片機和微機編程的區別 瀏覽:642
金牛期貨哪個app好 瀏覽:803
程序員越老越貶值嗎 瀏覽:211