我们串口1初始化后,在程序的中间想把RxD用作其他功能,只用TxD做输出,可以这样操作吗?
配置为其他功能的时候,将串口重新初始化,然后将rx作为通用gpio翻转,初始化的时候屏蔽这个初始化的配置。
也就是准备设置为ADC之前,先把串口重新初始化为您图片的方式,然后就可以将这个IO用作其他功能了是吗?
串口引脚初始化的时候不要操作RX的引脚,将RX引脚作为通用GPIO。然后UART1_DefInit的时候屏蔽RB_FCR_RX_FIFO_CLR。
TECH_Lpc,您好,感谢您耐心回复
我的诉求是,在开机前5分钟使用串口,然后将RxD作为ADC检测功能,按照您的说法,第一次程序初始化假如是:
GPIOA_SetBits(bTXD1); // 让TXD一直输出高电平
GPIOA_ModeCfg(bTXD1, GPIO_ModeOut_PP_5mA);
UART1_DefInit();
那么5分钟过后,重新设置R0_UART1_FCR屏蔽RB_FCR_RX_FIFO_CLR寄存器即可,还是说全部将UART1_DefInit执行(其中R0_UART1_FCR进行修改)
如果一开始就不使用rx引脚,直接在初始化的时候将RB_FCR_RX_FIFO_CLR屏蔽掉。
如果刚开始使用rx作为串口,程序使用一段时间后不需要了,则将RB_FCR_RX_FIFO_CLR置为复位态,并且将rx的引脚作为通用GPIO使用就可以了。建议你实际的操作测试一下,比如直接将这个引脚进行GPIO的翻转,看看波形和串口的收发是否正常。
OK,您这么说我就理解了。