4、仿真调试;
下载程序到板子上,发现没反应,怕自己没选择复位,就按下板子的复位,还是没反应,然后就去DEBUG,发现程序执行完配置IO口PB5那里后,IO口的PB5模式并没有变化,不得已,又打开例程,DEBUG,观察到执行配置PB5后,PB5模式变成想要设定的那样,然后我就把例程里的配置全部复制到我自己的工程里,一句一句地对,看自己是不是哪个字符写错了(虽然keil5没报错,但是第一次写程序,还是怕打错字),没有观察到哪里不一样,注释掉自己的,DEBUG例程那一段,PB5能正常配置,注释掉例程,DEBUG自己那一段,PB5不能正常配置,纳闷了,后面终于观察到“RCC_APB1PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOE , ENABLE);”这一句有问题,我怎么就复制个APB1的函数出来了,改成APB2,之后一切正常,自己的LED终于闪烁起来了;(之后去翻了下时钟系统相关的资料,知道了IO口是由APB2提供,不能有APB1提供)
接下来就把LED的代码仿照例程“跑马灯”的样式写在一个led.c文件里,也仿照着写一个led.h文件(其实算是复制的),以后的工程里,就可以直接加入这个文件,使用LED了。
|