问题描述:我使用了芯片的两个uart口,uart1、uart2.配置如下:
void Uartinit(void)
{
/*uart1 波特率1200,9bit(包括一个停止位),偶校验,开启rxd、txd*/
USART_Init(USART1,(uint32_t)1200,USART_WordLength_9b,USART_StopBits_1,USART_Parity_Even,(USART_Mode_Rx | USART_Mode_Tx));
USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);
SYSCFG_REMAPPinConfig(REMAP_Pin_USART1TxRxPortA,ENABLE);//remap uart1管脚
USART_Cmd(USART1,ENABLE);
USART_Init(USART2,(uint32_t)1200,USART_WordLength_9b,USART_StopBits_1,USART_Parity_Even,(USART_Mode_Rx | USART_Mode_Tx));
USART_ITConfig(USART2,USART_IT_RXNE,ENABLE);
USART_Cmd(USART2,ENABLE);
}
当使用发送时候,Tx引脚是低电平,导致数据无法发送(两个uart口都是一样问题)。但是如果接了TTL转232的板子后,由于232的板子的rxd脚将电平拉高,所以可以正常发送数据。也就是说芯片什么不接时候从Tx引脚上用示波器抓数据是没有反应的,一直显示低电平,但是接上232板子后示波器能捉到芯片发出来的数据,且能跟电脑的串口工具通讯。
问题:当IO被配置为uart口时候,Tx引脚不应该是高电平吗?难道配置uart口后好需要对io重新配置?
那位大侠知道问题所在,感谢! |