Re: 請問各位如何處理UART的傳送和接收的
|
||||
---|---|---|---|---|
版主
|
在W401教材裡有關 TXIF 與 TMRT 的描述:
1. 假如TXREG的資料被載到TSR,TXREG會空出;則TXIF = 1 並產生中斷( TXIE = 1 的話) 2. 假如TSR的資料串列傳送完畢; 則TMRT = 1 3. 假設TXREG剛載入資料時TMRT 為空的(TMRT=1), 則這筆 資料會立即被送到TSR,串列傳送會動作,同時TXIF = 1 並產生中斷 4. TXIF是可單獨使用,即使USART 的TX中斷是關閉的(TXIE=0) 5. 由以上動作可知偵測發送狀態TXIF會比TMRT來的快 所以如果你只要發送單一的 byte 的資料可以不要用中斷方式發送,如果傳送一串資料就必須再傳完最後一個byte時關掉TXIE,千萬記的這時不可以關掉 UART module 因為最後的一個傳送資料還在 TSR 裡正要傳送呢!
發表於: 2005/4/28 10:53
|
|||
|
Re: 請問各位如何處理UART的傳送和接收的
|
||||
---|---|---|---|---|
高級會員
|
ㄏㄏ我ㄧ開始沒搞清楚~~在試的時候~~想說奇怪怎麼一直都在跑中斷~~~我目前也是根你一樣~~用這樣在處理~~~~~不知道如果是這樣的話會不會發生~~~程式亂掉的情形~~~
發表於: 2005/4/27 20:08
|
|||
|
Re: 請問各位如何處理UART的傳送和接收的
|
||||
---|---|---|---|---|
高級會員
|
分享一下個人經驗..我是用877a 的..
877a 的 USART 如果設為非同步的話... Tx 的部份.. 只要TXREG 的資料為空的時候...就會發生中斷.. 也就是說..如果你沒有一直餵資料給TXREG .. 那你的程式就會一直不斷的進入中斷中... 如果你沒有持續使用Tx的話..那建議你把它的Enable關掉.. 要用的時候再打開.用完馬上Disable.. 不然..程式會一直卡在中斷中.. 因為TXREG一直沒有新的資料寫入.. 就會一直發生中斷... 其他編號的USART是不是也是如此..這我就不清楚嘍..
發表於: 2005/4/27 17:44
|
|||
|
Re: 請問各位如何處理UART的傳送和接收的
|
||||
---|---|---|---|---|
版主
|
應該是程式流程的問題與 UART 的硬體無關。試著先將發送的中斷關掉,只單獨用接收中斷看看是否可以將問題找出來。
發表於: 2005/4/27 16:29
|
|||
|
請問各位如何處理UART的傳送和接收的
|
||||
---|---|---|---|---|
高級會員
|
我把收的中斷設在高中斷
送的中斷設在低中斷 但是好像會把執行中的程式用亂~應該說原本執行好好的程式亂掉~~導致當機及一些誤動作~~~ 我的中斷中用的參數都是獨立的應該不影響啊~ 怎麼會這樣咧 個位大大是如何處理接收傳送的中斷呢~~ 可以分享一下嗎~謝謝
發表於: 2005/4/27 11:40
|
|||
|