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