Keil C51 printf 使用要點

Posted by: 邱小新 at 下午2:43 in
  1. 需要先初始化 uart 功能,TI 需設成 1,printf 輸出才有資料。
  2. 不需要像 SDCC 需要另外寫 putchar 及 getchar 函數,已經內建寫好了。
  3. 使用時要 inlcude stdio.h 標頭檔案,才不會找不到 prototype。
  4. printf 要輸出 8-bits 變數時,需寫成 %bd,不可以寫成 %d,會造成輸出錯誤,原因不明。
  5. getchar 函數在讀取到一個字元後,會自動輸出原字元做回應。(好像理論上不需要如此做,是為了仿造 PC 上有回應字元嗎?)

參考範例,使用 W79E632A,@40.0MHz,19200 bps。

void uart_init(void) { RCAP2L = 0xbf; RCAP2H = 0xff; TH2 = RCAP2H; TL2 = RCAP2L; T2CON = 0x34; SCON = 0x52; RI = TI = 1; } void main(void) { EA = 0; uart_init(); EA = 1; while (1) { printf("enter one charcter:"); getchar(); printf("\n\r"); } }

0 意見

張貼留言