STM32 死在 while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);

移植官方STM32虚拟串口程序,串口通信死在 

 while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);

仿真发现USART1时钟味使能。。。

使能时钟后仿真,USART1寄存器有反应,发送数据是仍死在

 while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);

上网寻找答案无果。怀疑引脚未配置造成。

配置

    GPIO_InitTypeDef  GPIO_InitStructure;
   
     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

  /* Configure USB pull-up pin */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  GPIO_Init(GPIOA, &GPIO_InitStructure);
     
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
  GPIO_Init(GPIOA, &GPIO_InitStructure);
故障依旧

检查发现忘记

    USART_Cmd(USART1, ENABLE);

了。。

加上就OK

猜你喜欢

转载自blog.csdn.net/diyer_zhou/article/details/50414056