Re: [問題] UART TX無法傳送資料

看板ASM作者 (***ˋ(  ̄▽ ̄)ˊ***)時間11年前 (2013/06/14 17:54), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《hogiking (***ˋ(  ̄▽ ̄)ˊ***)》之銘言: : 請問一下 有關UART的問題 : 目前是使用PIC24F系列晶片 在UART功能上碰到了一些問題 : 想做Echo測試的觀察 : 在rx使用上一切正常 使用接收中斷收值 並觀察值後確認無誤 : 但是tx卻毫無反應 : 這是我的rx中斷寫法 參照的是microchip教育訓練課程 : void __attribute__((interrupt, shadow, no_auto_psv)) _U2RXInterrupt() : { : IFS1bits.U2RXIF = 0; : while(!U2STAbits.TRMT); : if( U2STAbits.OERR ) : U2STAbits.OERR = 0; : U2TXREG = U2RXREG; : } : 如果這樣寫 系統在第一次UART輸入後就會卡住 : 接ICD3用Debuger模式看 : 系統會卡在TRMT判斷那行程式無法處理 : 好像傳送給tx一直沒有成功(tx是完全量不到值 而不是亂碼) : 就算把判斷那行 註解掉 整個中斷會跑完沒錯 : 但是還是tx還是沒有反應 : 以我的理解 跟 Datasheet的描述 : TX只要有收到值 在下次的BR上緣處發 就會送出 : 想請問tx在設定上是不是還要其他額外該注意的地方 : 因為我不是直接拿範例code來用 我是在usb hid的開發功能下 要加進這功能 : 是不是在Config上面有要注意的ˇ地方 自己回一下 找到問題了 感謝MC的論壇版主釋疑 U2MODE = 0x8200 改成 0x8000 改成只要enable rx跟tx就好了 bit 9-8 UEN<1:0>: UARTx Enable bits 11 = UxTX, UxRX and BCLKx pins are enabled and used; UxCTS pin controlled by port latches 10 = UxTX, UxRX, UxCTS and UxRTS pins are enabled and used 01 = UxTX, UxRX and UxRTS pins are enabled and used; UxCTS pin controlled by port latches 00 = UxTX and UxRX pins are enabled and used; UxCTS and UxRTS/BCLKx pins controlled by port latches 因為開啟了 Hardware Handshake 的關係,使用 RTS & CTS 做流量控制,因為 CTS 失控 導致 Tx 被 disable. 所以設成 0x8000 後就將 Hardware control 功能關閉,不再使用 RTC & CTS 做流量控制了。 Datasheet念的還不夠透徹 orz -- Johannes Krauser II 強暴!強暴!強暴!強暴!強暴!強暴! GO TO D.M.C ◥◣ ◥◣ 強暴!強暴!強暴!強暴!強暴! ▄▂▁▂▃▅▆▅ ▃▄ハ ∵ ∵ ▃▄▃ シ ▋▊▍ φjeans1020 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 42.73.139.242
文章代碼(AID): #1HkkWyMd (ASM)
文章代碼(AID): #1HkkWyMd (ASM)