原 LPC1114只能讀一次串列埠資料?要多次!

2021-08-25 13:27:31 字數 555 閱讀 1634

最初,讀取串列埠資料這樣處理:

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 接收資料工作方式 查詢方式 通...