今天原本只是想做一个很简单的小项目,只是想让LED亮灭来表示程序正在运行,但是写完程序调试后却发现LED始终不亮,但程序又的确在跑。
原本我以为只是我的IO口设置有问题,就重新检查了设置,但慢慢检查下来也没发现有任何错误,把别人标准的设置拿过来也没办法解决问题。
终于在捣鼓了好几个小时后,确认程序逻辑,文件,设置全都没有错误后,我突然灵机一动,发现LED和KEY的设置函数都用了GPIOA,而刚好问题的LED灯就是在GPIOA,我一下子就反应过来,我在LED的文件设置端口时,(我是设置寄存器)先复位了所有的GPIOA口,再去使能相应的端口,那么当我去到KEY的文件设置端口时,又重新复位了GPIOA口,就把我原来LED的设置全删了,那自然LED灯就不亮了,改正问题后也立马得到了解决证明了我的猜想。
当然我也很幸运及时的遇到了这个问题,因为这次的问题只是出现在一个毫不起眼的LED灯上,但往后在其他项目里出现类似的问题而且又在很关键的部分上,那后果和排错就更加不可想象。
果然是塞翁失马焉知非福!