用外部器件连接串口2,然后串口2接受数据之后发送给串口1,应该怎么修改例程?

2019-08-16 19:21发布

我在简单例程上配置串口2,然后在中断里加上串口2的接受数据,再将其发送给串口1,但是没有用
配置串口2:
void My_USART2_Init(void)
{
 GPIO_InitTypeDef GPIO_InitStrue;
 USART_InitTypeDef USART_InitStrue;
 NVIC_InitTypeDef NVIC_InitStrue;
 
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//??
 RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2,ENABLE);
 
 GPIO_InitStrue.GPIO_Mode=GPIO_Mode_AF_PP;
 GPIO_InitStrue.GPIO_Pin=GPIO_Pin_2;
 GPIO_InitStrue.GPIO_Speed=GPIO_Speed_10MHz;
  GPIO_Init(GPIOA,&GPIO_InitStrue);//??
 
 GPIO_InitStrue.GPIO_Mode=GPIO_Mode_IN_FLOATING;
 GPIO_InitStrue.GPIO_Pin=GPIO_Pin_3;
 GPIO_InitStrue.GPIO_Speed=GPIO_Speed_10MHz;
  GPIO_Init(GPIOA,&GPIO_InitStrue);//??
 
 USART_InitStrue.USART_BaudRate=9600;
 USART_InitStrue.USART_HardwareFlowControl=USART_HardwareFlowControl_None;
 USART_InitStrue.USART_Mode=USART_Mode_Tx|USART_Mode_Rx;
 USART_InitStrue.USART_Parity=USART_Parity_No;
 USART_InitStrue.USART_StopBits=USART_StopBits_1;
 USART_InitStrue.USART_WordLength=USART_WordLength_8b;
 
 USART_Init(USART2,&USART_InitStrue);//??
 
 USART_Cmd(USART2,ENABLE);//?????®??3
 
 USART_ITConfig(USART2,USART_IT_RXNE,ENABLE);//????????????
 
 NVIC_InitStrue.NVIC_IRQChannel=USART2_IRQn;
 NVIC_InitStrue.NVIC_IRQChannelCmd=ENABLE;
 NVIC_InitStrue.NVIC_IRQChannelPreemptionPriority=1;
 NVIC_InitStrue.NVIC_IRQChannelSubPriority=1;
 NVIC_Init(&NVIC_InitStrue);
}
串口2的中断:
void USART2_IRQHandler(void)
{
 u8 res;
  if(USART_GetITStatus(USART2,USART_IT_RXNE))
 {
     res= USART_ReceiveData(USART2);
 
     USART_SendData(USART1,res);  
  }
}
求解
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。