最初,讀取串列埠資料這樣處理:
while (1)
}這樣寫只能讀取一次,隨後再怎麼寫給串列埠資料,也讀取不到了。
一旦進入顯示狀態,就陷入無限迴圈無法跳出。查閱lpc1114手冊,尋找串列埠相關資訊。
uart
接收資料時,可以使用查詢方式接收,也可以使用中斷方式接收。
表4-1 接收資料工作方式
查詢方式
通過查詢暫存器u0lsr中的位u0lsr[0]實現。只要接收到資料,u0lsr[0]位就會置位
中斷方式 1
、設定uart中斷使能暫存器(u0ier),使u0ier[0] = 1
2、開放系統中斷
如果接收fifo中的資料達到u0lsr中設定的觸發點時,便會觸發中斷——rda。
若接收了資料,但接收個數小於觸發點,過一段時間後即發生字元超時中斷——cti
使用中斷方式接收資料時,如果發生rda中斷,則迴圈從u0rbr中讀取資料即可。如果發生了字元超時中斷——cti,可以通過u0lsr[0]來判斷fifo中是否含有有效資料。
解決方案:改用中斷方式讀取資料,就可以實現多次讀串列埠操作。
原 LPC1114只能讀一次串列埠資料?要多次!
最初,讀取串列埠資料這樣處理 while 1 這樣寫只能讀取一次,隨後再怎麼寫給串列埠資料,也讀取不到了。一旦進入顯示狀態,就陷入無限迴圈無法跳出。查閱lpc1114手冊,尋找串列埠相關資訊。uart接收資料時,可以使用查詢方式接收,也可以使用中斷方式接收。表4 1 接收資料工作方式 查詢方式 通過...