我們串口1初始化后,在程序的中間想把RxD用作其他功能,只用TxD做輸出,可以這樣操作嗎?
配置為其他功能的時候,將串口重新初始化,然后將rx作為通用gpio翻轉(zhuǎn),初始化的時候屏蔽這個初始化的配置。
也就是準備設(shè)置為ADC之前,先把串口重新初始化為您圖片的方式,然后就可以將這個IO用作其他功能了是嗎?
串口引腳初始化的時候不要操作RX的引腳,將RX引腳作為通用GPIO。然后UART1_DefInit的時候屏蔽RB_FCR_RX_FIFO_CLR。
TECH_Lpc,您好,感謝您耐心回復(fù)
我的訴求是,在開機前5分鐘使用串口,然后將RxD作為ADC檢測功能,按照您的說法,第一次程序初始化假如是:
? ? GPIOA_SetBits(bTXD1);? // 讓TXD一直輸出高電平
? ? GPIOA_ModeCfg(bTXD1, GPIO_ModeOut_PP_5mA);
? ? UART1_DefInit();
那么5分鐘過后,重新設(shè)置R0_UART1_FCR屏蔽RB_FCR_RX_FIFO_CLR寄存器即可,還是說全部將UART1_DefInit執(zhí)行(其中R0_UART1_FCR進行修改)
如果一開始就不使用rx引腳,直接在初始化的時候?qū)B_FCR_RX_FIFO_CLR屏蔽掉。
如果剛開始使用rx作為串口,程序使用一段時間后不需要了,則將RB_FCR_RX_FIFO_CLR置為復(fù)位態(tài),并且將rx的引腳作為通用GPIO使用就可以了。建議你實際的操作測試一下,比如直接將這個引腳進行GPIO的翻轉(zhuǎn),看看波形和串口的收發(fā)是否正常。
OK,您這么說我就理解了。