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

作者: hogiking (***ˋ(  ̄▽ ̄)ˊ***)   2013-06-14 17:54:01
※ 引述《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

Links booklink

Contact Us: admin [ a t ] ucptt.com