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