keil中printf
1.printf函數是調用putchar函數輸入的,而putchar應該是先判斷ti是否為1,不為1則等待為1。
2.Keil的串口處理比較巧妙的,我的分析如下:
3.一般串口發送都是等TI(字節發送完標志)為1就馬上發送下一字節,由于不管是中斷還是查 詢TI標志的方法,都會檢測TI,因此首次發送必須置位TI標志,使串口開始發送你的“在程序的初始化部分往串口數據寄存器SBUF里放一個字符來起用終 端顯示;”方法最終作用也就是把TI置1,改成TI=1;來啟動發送也是一樣的(當然,不會發出那個 字符了)。
4.中定義,調用底層的putchar()來實現.底層發送數 據到串口時,先查TI=1是否成立,死等直到TI=1時將新數據寫入SBUF,函數返回,所以要先將TI置1,啟動第一次傳輸操作.可查看反匯編相關代碼 理解其工作機理!
5.自己理解:在多機通訊中,應該也要形成像 putchar()函數的機理,要有串口中斷服務程序,并且是在該程序中判斷TI,根據TI是不是該發送下一組數據~同樣對于接收的一方..
評論