在应用STM32F103C8T6的USART通讯过程中,根据资料将USART的Rxd管脚设置为浮空输入,Txd管脚设置为复用推挽输出。
由于在项目中有时需要应用USART2有时用USART3,考虑实用性在程序中将两个USART都定义了,但硬件有时只用到一个,另一悬空。调试时出现各种奇怪现象,最后定位到桌面节能灯台灯只要通电,电路板就不能可靠工作,发现USART收到干扰。不停中断导致程序无法正常工作。
重新查阅数据手册发现可将Rxd设置为上拉输入,修改后问题解决。
无独有偶,在SWD程序下载时将Reset管脚引出,由于不需要外部复位就没有做复位电路,调试中发现程序很容易自动复位,只要用金属体碰触Reset就会造成复位,查阅数据手册,NRST管脚内部是有上拉电阻的,不知道为什么容易受干扰复位,网上有人说NRST管脚上的电压只要低于3.2V就会造成单片机复位,最后只好在外部加上拉电阻解决。