stm32用寄存器还是库函数(用寄存器OR用库函数)

可能每一个小白开始学STM32的时候都会问,究竟是选择用寄存器编程呢还是选择用库函数?

51单片机的时候我们都是直接操作寄存器,很方便,出了BUG我们也很容易的知道是哪个寄存器赋值不对,这样的习惯也被我带到STM32

STM32的寄存器是要比51单片机多很多的,好在有一本中文参考手册我可以随时翻看,但是我要说但是了,我相信像我这样的小白首次接触arm单片机,仅凭一本参考手册就认为自己能学下去的恐怕少之又少,又或者是迷之自信?相信我,不行的。你得找各方教程,我就是这样开始自己的STM32之旅的

目前较为系统介绍操作寄存器的教程是正点原子的那本书,有兴趣的可以去查一下,说实话一开始我并不知道它,我在书城找到了另一本介绍STM32的书,可以说我的入门知识多半都是来源于它,我也相当喜欢这本书,可能是比较契合我这种刚从51转过来的初学者,我现在每次从头来过的时候都会从这本书翻起。

如果你也是初学者,如果你也想买本入门的简单书,那我就推荐它了

stm32用寄存器还是库函数(用寄存器OR用库函数)(1)

对,就是他,他更适合我

不好意思,书被我弄得有些旧了,哈哈

好了,就这样我开始了我的寄存器编程之旅,跟着书本一步一步觉得很有成就感,也对各个寄存器有了初步印象

本来觉得这样学下去也蛮好的,奈何强迫症的我总是会有古怪的想法,或者说做事想省事,心想是不是能把代码写的更通用一点,或者更省事一些,因为我觉得自己每次写代码其中有好多都是在重复造轮子,造就造吧,可造的每次都不太一样,我就想能不能把这些寄存器操作封装成一个通用函数,记住常用的寄存器并且记住他们各个BIT的意义似乎不是问题,但每次写代码都从脑子里把他们一遍又一遍的筛选一遍我觉得也挺累的,何必呢!我封装一下不就解决了吗

说到这里你可能已经意识到了,自己有了封装寄存器操作这不就相当于做了官方固件库的工作了吗?是的,这一切太自然了,从最开始的执着于寄存器一位一位的去操作,到联想到自己去封装一下避免重复造轮子,我经历的相信你也会经历,固件库自然而然的登场了

我一开始对固件库是比较排斥的,在我看来让我去记住跟寄存器数量一样多的别人写的函数,我还不如记住所有要用到的寄存器配置方法呢,当然这种想法后面动摇了,那段时间我又想:与其用别人的函数,不如我自己封装函数来用。强迫症就是这样,不是自己写的用着不踏实???当时就是这么个心理,哈哈

我确实自己试着封装了一些函数,也蛮有意思的。这个时候我又想:我写的函数跟固件库里的函数有什么区别呢?官方会用怎样的代码实现功能?这个想法让我第一次静下心来开始试着阅读固件库里面的代码。不对比不知道,本以为摸到门了,一对比才知道,距离门还差八千里……

翻看过固件库源码给我感触最深的是什么呢?是C语言,我需要好好恶补一下C语言了……

我想通了,用固件库是必由选择,当然你如果是大牛,拿出时间自己把各个外设的驱动函数全搞定,那更好,但对我而言,我是无论如何都不可能做到的,哪怕做到,代码质量稳定性方面如何跟一个公司的团队创作相提并论?

我还是算了吧,倔啥呢,用库函数挺香的,并且翻看这固件库源码也能提高自己的C语言成绩。

好了,说这么多你一定知道我想说什么了,是的,用固件库是你的必然选择,哪怕你开始不用,最后还是会用。当然寄存器也要了解,多翻翻中文参考手册,不管你是51还是arm,或者又是其他单片机,归根结底本质还是各个寄存器。这就是我目前的理解。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页