CH592F UART0半雙工模式下無法觸發(fā)中斷?
void?app_uart_init()
{
????//tx?fifo?and?tx?fifo
????//The?buffer?length?should?be?a?power?of?2
????app_drv_fifo_init(&app_uart_tx_fifo,?app_uart_tx_buffer,?APP_UART_TX_BUFFER_LENGTH);
????app_drv_fifo_init(&app_uart_rx_fifo,?app_uart_rx_buffer,?APP_UART_RX_BUFFER_LENGTH);

????//uart?tx?io
????GPIOB_SetBits(bTXD0);
????GPIOB_ModeCfg(bTXD0,?GPIO_ModeOut_PP_5mA);

????//uart?rx?io
????GPIOB_SetBits(bRXD0);
????GPIOB_ModeCfg(bRXD0,?GPIO_ModeIN_PU);

????//uart0?init
????UART0_DefInit();
????R8_UART0_MCR?=?RB_MCR_HALF;
????PRINT("R8_UART0_MCR:%x\r\n",?R8_UART0_MCR);

????//enable?interupt
????UART0_INTCfg(ENABLE,?RB_IER_RECV_RDY?|?RB_IER_LINE_STAT);
????PFIC_EnableIRQ(UART0_IRQn);
????PRINT("R8_UART0_MCR:%x\r\n",?R8_UART0_MCR);
}

將UART0設置為RB_MCR_HALF 半雙工模式(RX跟TX連接在一起,使用PB4和PB7),發(fā)送數據后,對方返回數據不會觸發(fā)UART0_IRQHandler中斷,而同樣的代碼和硬件連接CH583F卻可以呢?

接2根線,592的RX/TX需要接到一起,進行半雙工測試。

硬件繪制的時候,使用半雙工功能則可以將TX/RX內部接到一起。

建議先將串口0的收發(fā)調整沒問題,然后再加上半雙工功能。

image.png


這里的半雙工,實際上RX TX兩根線還是獨立工作的嗎?并不能實現單線收發(fā)?


關于TX-RX接在一起時受這個帖子啟發(fā):

http://www.findthetime.net/bbs/thread-81405-1.html

使用這個方法,583工作是正常的。


無法單線收發(fā),需要RX/TX接到一起。


只有登錄才能回復,可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频