用外部器件连接串口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);  
  }
}
求解
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
rooney
1楼-- · 2019-08-17 13:28
路漫漫lb 发表于 2015-6-10 17:22
这个小问题解决了

我也遇到  这个问题   怎么解决的?
whj784597217asd
2楼-- · 2019-08-17 16:34
rooney 发表于 2017-7-3 17:37
我也遇到  这个问题   怎么解决的?

你的问题解决了吗?我也遇到了这个问题,能分享一下吗?

一周热门 更多>