本帖最后由 壁虎 于 2016-5-29 13:35 编辑
跑马灯实验是我在32平台上的第一个程序。按照老师的视频,库函数版本很轻松的就完成了。在进行 寄存器版本 的实验时,我使用的是 寄存器新建工程模板 而没有按照视频的要求使用库函数新建工程模板。
按照视频将程序编写完后,LED闪烁时间明显加长。随后我与资料提供的标准 寄存器版本 跑马灯程序进行了对比,发现头文件有区别,同时少写了一句“Stm32_Clock_Init(336,8,2,7);”函数。加上后,程序运行正常。
结合以前的单片机开发经验,我对源码文件夹里的库函数和寄存器版的两个跑马灯程序进行了对比。发现,库函数没有设置时钟就可以正常delay,而寄存器需要进行时钟设置才可以正常delay。这里很不理解。
希望老师、同学们能一起讨论下。
附上两张库函数和寄存器版本的源代码程序。寄存器版的时钟被注释掉后,delay的时间明显加长。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
原子给的源代码里,库函数的跑马灯比寄存器版的跑马灯少了一行设置时钟的函数,但是都可以正常delay。程序分析没有发现明显区别。请问寄存器为啥一定要设置始终,而函数不需要
应该是这样,希望能帮到你
隐式调用??不明白,但是谢谢你的提醒
寄存器的我能理解,但是库函数的时钟是如何设置的,或者具体是哪里设置的我不很明白
一周热门 更多>