導航:首頁 > 操作系統 > 單片機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函數的條件是相關的資料

熱點內容
兩個同名文件夾同步 瀏覽:625
拍照文件夾哪個好用 瀏覽:84
文件夾和書包 瀏覽:505
解壓歸檔拿登記證 瀏覽:218
去體驗解壓房 瀏覽:608
單片機一鍵中斷響應 瀏覽:641
唐浩明pdf 瀏覽:839
程序員土木 瀏覽:71
android如何與web伺服器交互 瀏覽:604
蘋果小風扇app怎麼下 瀏覽:951
杭州it程序員對身體好不好 瀏覽:534
高新區編程加盟找哪家 瀏覽:27
伺服器什麼樣的好賣 瀏覽:146
單片機原理及應用第二版例題答案 瀏覽:966
base64encoderjava 瀏覽:489
linux視頻轉換 瀏覽:701
linux與unixshell編程指南 瀏覽:138
vb6反編譯程序錯誤 瀏覽:126
伺服器弄掛有什麼影響 瀏覽:307
安卓軟體為什麼運行不了 瀏覽:531