STM32库函数和寄存器操作的思考

从开始接触51单片机,到现在开始转型学习功能更加强大的STM32f407系列,

学习过程中引入了库函数及相应操作,当时赶着进度做点东西出来,有点不求甚解。现在返回来求索:相比于原来51单片机的寄存器,32系列的寄存器无论是个数还是实现功能时多个寄存器之间的调用配合,使用难度都高了不少,所以有了库函数和相应的固件库来减少难度。

先说一下固件库(这个我们最开始安装完MDK缺了它总是各种报错的东西)和相应库函数

固件库这边时首先将各个设备所有寄存器的配置字进行预定义,然后封装在结构体或者枚举变量中,等到用户调用相关库函数时,会根据用户传入的参数从这些已经封装好的结构体或者枚举变量中取出与之对应的配置字,最后写入相应寄存器中完成对底层寄存器的配置

其次对比一下库函数操作和寄存器操作:

从上面简单介绍的运作方式不难看出,STM32的固件库函数对于相关程序开发人员来说可以说时相当便利了。只需要填写或者替换相应的参数就可以在完全不关心底层寄存器的前提下完成相关寄存器的配置,通用性和易用性可以说很不错了。但与此同时我们也应该注意到库函数的通用易用以及安全时付出了加大代码量的代价,而且这个过程所增加的逻辑判断代码也会造成一定的额外时间消耗,所以在对时间要求比较苛刻的应用场合需要评估库函数使用对程序运行时间造成的影响,或者说可以通过用寄存器操作替换相应的库函数操作来达到优化。

至于比较库函数和寄存器操作的代码部分,我就不贴了,网上蛮多的,分享也算是记录下这点库函数操作底层如何实现对寄存器操作或者说如何做寄存器封装的就好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值