#21ic问答#
使用N32G455VEL7,使用USART2,将USART2 引脚复用到PD5和PD6,配置完成后,可以发出数据,但无法接收到数据。 直接将PD5 和PD6 连接则可以接收到发送出来的数据。已经使用了3个不同的USB转串口,TTL格式,都是一样的情况。使用逻辑分析仪查看,RX一直是低电平,USB转串口工具拉不上去。
有没有人遇到这种情况,谢谢! 代码如下
引脚配置:
//USART 2 pin cfg
GPIO_InitStructure.Pin= GPIO_PIN_6;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU; // 此处已经使用过in_floating
GPIO_InitPeripheral(GPIOD,&GPIO_InitStructure);
GPIO_ConfigPinRemap(GPIO_RMP1_USART2,ENABLE); // usart 2 remap PD port
//PD5 as TX ,PD6 as RX/
GPIO_InitStructure.Pin= GPIO_PIN_5;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Speed= GPIO_Speed_50MHz;
GPIO_InitPeripheral(GPIOD,&GPIO_InitStructure);
GPIO_InitStructure.Pin= GPIO_PIN_6;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP; // 此处使用过PP和OD
GPIO_InitPeripheral(GPIOD,&GPIO_InitStructure); // 使用逻辑分析仪查看,这一步执行后PD6 及RX引脚变为低电平。
// Usart2 的相关配置
USART_InitType USART2_InitStructure;
USART2_InitStructure.BaudRate =19200;
USART2_InitStructure.WordLength=USART_WL_8B;
USART2_InitStructure.StopBits=USART_STPB_1;
USART2_InitStructure.Parity=USART_PE_NO;
USART2_InitStructure.Mode=USART_MODE_RX|USART_MODE_TX;
USART2_InitStructure.HardwareFlowControl= DISABLE;
USART_Init(USART2,&USART2_InitStructure);
USART_ConfigInt(USART2,USART_INT_IDLEF|USART_INT_TXC,ENABLE);
USART_Enable(USART2,ENABLE);
USART_ClrFlag(USART2,USART_FLAG_TXC);
//USART_EnableDMA(USART2,USART_DMAREQ_TX,ENABLE);
USART_EnableDMA(USART2,USART_DMAREQ_TX,ENABLE);
USART_EnableDMA(USART2,USART_DMAREQ_RX,ENABLE); // 开启串口的DMA请求
|