最近玩stm32,使用串口发送数据在PC端使用串口工具检测接收到的数据,发现每次上电串口工具都会蹦出一个FF,这让我郁闷好久。在网上查了好多解决问题的办法,有的说先初始化UART 在初始化UART对应的GPIO脚,有的说把中断关闭等等 。我试了都不行,串口还是会发送FF,简直郁闷。。。。
后来我单步调试,发现在初始化的时候函数GPIO_PinAFConfig();初始化导致串口上电在TX脚上输出一个高电平。所以我就尝试在函数GPIO_Iinit();初始化之前首先初始化GPIO_PinAFConfig();这样就不会出现FF了。。。
总之解决办法如下就不会出现问题:
1.开启IO和外设USART时钟。
2.GPIO_PinAFConfig();
3.GPIO_Iinit();
4.NVIC_Init();(如果使能中断)
5.USART_ITConfig();
6.USART_Cmd();
2和3一定不能颠倒!!!