我最近在学习STM32芯,尝试使用C语言来进行编程。在实现一个5s LED常亮的示例代码时,确实遇到了一些调试困难。最大的困难在于对STM32的外设不太熟悉。这个芯片相比51单片机多了很多寄存器,但对于入门者来说,这也增加了学习难度。我在使用定时器和GPIO来控制LED时,也遇到了一些问题。
首先是定时器,STM32有多达14个定时器,功能复杂。我查阅了不少参考手册,才弄清楚定时器3最适合此用途。配置定时器寄存器也花了一番功夫,调试了几次才得到50ms的中断间隔。
然后是GPIO引脚的配置,不同的STM32芯片GPIO端口有所区别,我找了老师的示例代码参考,也多次尝试,最后才成功将LED与GPIO正确连接起来。在调试中,我还发现C语言在linux编程时和PC开发有点不同,需要注意一些硬件相关的优化。 |