STM32F4探索板 Usart2使用问题

2019-07-20 09:17发布

把STM32F4开发板的串口通讯例程中的Usart1修改为usart2,其余不变,代码如下
void My_USART2_Init(void)
{
          GPIO_InitTypeDef  GPIO_InitStructure;
        USART_InitTypeDef USART_InitStructure;
        NVIC_InitTypeDef NVIC_InitStructure;
       
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2,ENABLE);//ê1ÄüUSART2ê±Öó
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);
       
        GPIO_PinAFConfig(GPIOA,GPIO_PinSource2,GPIO_AF_USART2);
        GPIO_PinAFConfig(GPIOA,GPIO_PinSource3,GPIO_AF_USART2);

          GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
  GPIO_Init(GPIOA, &GPIO_InitStructure);
       
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
  GPIO_Init(GPIOA, &GPIO_InitStructure);
       
        USART_InitStructure.USART_BaudRate=115200;
        USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;
        USART_InitStructure.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;
        USART_InitStructure.USART_Parity=USART_Parity_No;
        USART_InitStructure.USART_StopBits=USART_StopBits_1;
        USART_InitStructure.USART_WordLength=USART_WordLength_8b;
       
        USART_Init(USART2,&USART_InitStructure);
        USART_Cmd(USART2 ,ENABLE);

        USART_ITConfig(USART2,USART_IT_RXNE,ENABLE);
       
        NVIC_InitStructure.NVIC_IRQChannel=USART2_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=1;
        NVIC_InitStructure.NVIC_IRQChannelSubPriority=1;
        NVIC_Init(&NVIC_InitStructure);
       
       
}

void USART2_IRQHandler(void)
{
        u8 res;
        if(USART_GetITStatus(USART2,USART_IT_RXNE)){
               
                res=USART_ReceiveData(USART2);
                USART_SendData(USART2,res);
        }

}
int main(void)
{
   NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
        My_USART2_Init();
        while(1);
}

但是串口调试助手怎么收不到数据呢?麻烦哪位高人指点下?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
peng1554
1楼-- · 2019-07-20 14:29
天耀中华 发表于 2018-3-9 21:18
楼主,现在成功了吗?麻烦分享一下可以吗?我也遇到了同样的问题,是不是硬件连接有问题呢?感谢


看看这个
JACK123
2楼-- · 2019-07-20 17:16
 精彩回答 2  元偷偷看……
jhf814462570
3楼-- · 2019-07-20 19:12
 精彩回答 2  元偷偷看……
王建峰
4楼-- · 2019-07-20 23:35
关注下这个问题,,为什么串口中断程序没有清除标志操作呢
张明涛
5楼-- · 2019-07-21 05:28
 精彩回答 2  元偷偷看……
1375917982gxut
6楼-- · 2019-07-21 11:04
把整个工程的代码都帖处理吧

一周热门 更多>