STM32 的编程方式 宏观比较

寄存器编程 (基础):

这是最底层的编程方式;在需要解决某些问题的场景里,这是必须要掌握的。

寄存器编程编程方法,即使平时很少使用,但却仍需掌握,这是解决问题时的需要在编程的过程中,不会遇到涉及底层寄存器类的问题,这只能说是碰巧而已。因此,即使在使用了库函数编程方法,但是,当遇到问题时,还是不可避免地、离不开寄存器编程的方法。

就像使用 C语言编程一样,理论上,汇编语言是不需要再考虑了;但是,实际上,在遇到某些问题的时候,还需要回退到编译出来的汇编语言上来分析。没有哪家的编译器厂家,敢宣传自己的编译器绝对不存在 Bug。

标准外设库编程:

ST 官方已经不再支持这种编程方式了。

但是,在有些用户公司的有些项目上,由于历史的原因,暂时还是无可能淘汰掉的。
在旧产品上使用的是标准库编程,在后期的维护中,以及老同事的、顽固的编程习惯等等,都会造成想要淘汰一种过时的东西,会需要一个过程;除非到了非淘汰不可的需要。

对于一个实际的用户公司来说,更新技术,是需要代价的,这要看到底值不值得去做了。
比如:旧产品的维护;现有的程序员并不熟悉新技术;已有的库存、或订购物料并不适合新的标准等等。

谁对新技术最感兴趣:当时的大公司对于一般的、或有些新技术,往往并不是那么太感兴趣,因为它的盈利还达不到大公司的要求,或是存在着技术风险,跌倒了不容易爬起来。
而对当时的小公司来说,新技术是与大公司进行产品竞争的亮度,跌倒了就再爬起来嘛。

新城代谢的技术,新城代谢的公司:当新技术成熟了的时候,就会造就一批新的有名气的、大型的公司。

HAL 库、LL 库编程:

HAL 是 ST当前主推的编程方式。

LL 库是与 HAL库捆绑在一起发布的,以解决某些 HAL库函数的运行速度慢、或效率低的问题。

说明:

1. 库函数只是对外的 API 接口函数而已;对于针对外设部分的库函数,在库函数的内部最终实现上,都是基于寄存器编程。
而其他库函数,比如 RTOS,图形界面库等等,则属于更高级的封装。<< 这也许是 HAL被目前主推的原因之一吧?假如不是为了这种需要,可能只需要使用标准外设库编程,就好了。

2. 库函数也不可能都是正确的,需要保持怀疑的精神。

MCU 具体的应用场景,是千变万化的,是不可预测的。

HAL 库函数的官方设置,不可能做到覆盖不同用户所有的应用场景;因此,在有些场景的应用中,HAL 会存在这样或那样的问题。

而检查、或者改正这些 HAL 不良所导致的问题,就离不开寄存器编程的能力了。

3. 虽然直接二进制编程,是不实用的。

但是,在理解、或处理某些软件问题的时候,可能会不可避免地还会使用到。

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值