STM32F107VC单片机用串口USART1下载程序时,Flash Loader提示Unrecognized device解决办法

BOOT0接了高电平,BOOT1(PB2)接了下拉电阻,串口线为PA9和PA10,通电后运行Flash Loader,发现PA9上的LED灯是亮着的(亮度较低,可初步判断PA9处于带下拉电阻的输入模式),用万用表测量68脚(PA9)的电压,为0.79V。用串口调试助手打开串口,发送0x7f(发送后PA9上的灯立即熄灭),收到的数据是“00 79”,也就是在ACK(0x79)字节前收到了一个错误的数据0x00。而Flash Loader只认0x79,所以才会提示Unrecognized device。

STM32F107单片机不仅支持USART1下载程序,还支持USB OTG接口下载,而PA9引脚刚好与USB OTG有关,导致该引脚在bootloader启动时就为低电平,发送0x7f选中串口1时才恢复到正常电平。所以可以接一个10kΩ的上拉电阻,把PC端的串口接收引脚PA9的电平拉高,使LED灯熄灭,这样就可以解决问题了。通电后,万用表实测出PA9的电压为1.5V,不再被PC端视为低电平。

另外,如果以太网PHY芯片DP83848的时钟使用PA8 MCO提供的时钟的话,那么该芯片的RESET引脚必须用2.2kΩ的下拉电阻拉低,接到单片机的I/O口上,上电后MCO时钟配置完毕有时钟输出了之后,才能撤销该复位信号,不然上电瞬间USART1很容易出现乱码。

猜你喜欢

转载自blog.csdn.net/zlk1214/article/details/79028696