单片机c语言必背代码_stm32单片机编程用库函数好还是寄存器好?

我学单片机已经四年了,用的一直是标准库函数。

库函数和寄存操作到底哪个好,这个不好说,只能说根据个人情况和应用场合吧。比如说我,虽然说我一直用的是标准库函数,但是我也不只是用标准库,偶尔在需要的时候会用寄存器操作,因为寄存器操作的效率更高。

库函数和寄存器操作的区别可能和 C 语言与汇编语言的区别差不多吧,都是跟效率有关,但有时候效率并不是唯一指标。

我们都知道 C 语言的效率要比汇编低,但是现在绝大多数嵌入式开发人员用的还是 C 语言!为什么,因为它简单易学,容易跨平台,移植性好,这是很大的优势,而汇编就不同了,它针对的是某一款内核进行开发,比如51汇编语言、ARM汇编语言,一旦内核变了,如果你的代码采用纯汇编写的代码,那几乎所有的代码都不适用了。但是使用 C 语言编写代码就不同,你在 51 单片机写的代码也能在 STM32 单片机中使用,你要做的工作就是把涉及到底层硬件的代码稍微修改一下就可以了,这种工作量很少,你的代码写得足够好的话,是很容易的,这称之为移植。那为什么 C 语言可以做到跨平台呢?我们知道单片机最终还是要通过汇编语言执行的,所有的 C 语言其实都会通过编译器进行转化的,也就是说你写的 C 语言程序会经过一种称为编译器的东西转为对应的汇编语言,比如说你的 C 语言程序要运行在 51 单片机上,你就要用对应的编译器编译,如果要运行在 STM32 上,你也要用另一个对应的编译器才行,这就是 C 语言能跨平台的秘密!跨平台的工作是交给了编译器,而不是说 C 语言真的能直接在各种单片机上运行!

但是真正的单片机程序并不是只有 C语言的,在进入 C 的世界之前,其实是有一段代码的,这称之为启动代码,但是这段代码很少!

库函数和寄存器的区别也是如此,库函数类似于 C 语言,而寄存器就类似于汇编。

使用库函数的好处就是你不用深入每一个寄存器操作的细节,而是把工作重心放在功能实现上。所有的寄存器细节都由封装好的函数去实现,你要做的就是合理的调用它。但也正因为细节进行了封装,所以在编写库函数的时候会考虑更多,这就会导致库函数的代码比较臃肿,效率比较低下,但是它的好处就是方便移植、修改,就是说即使库函数代码真出现了问题,你也只是找对应的函数进行修改就可以了,其他的函数基本可以不用动。

正因为库函数和寄存器操作各有优势,所以真正的高手一般都会结合这两种写法,比如在一般代码中使用库函数编写,遇到关键代码采用寄存器操作,比如说中断函数这种关键部分,一般都会使用寄存器的方式。

以上!

afef571698abd22514ad7667b7ed10d2.png
aacc6226d255de685032452728322d95.png
110feffbe76be6139d6f13b97592832f.png
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值