zoukankan      html  css  js  c++  java
  • STM32 寄存器库和固件库

    寄存器和固件库开发的差别和联系

    固件库就是函数的集合,固件库函数的作用是向下负责与寄存器直接打交道。向上提供用户函数调用的接口(API)。


    在 51 的开发中我们经常的作法是直接操作寄存器,比方要控制某些 IO 口的状态,我们直
    接操作寄存器:
    P0=0x11;
    而在 STM32 的开发中,我们相同能够操作寄存器:
    GPIOx->BRR = 0x0011;

    这样的方法当然能够,可是这样的方法的劣势是你须要去掌握每一个寄存器的使用方法。你才干正确使用
    STM32,而对于 STM32 这样的级别的 MCU,数百个寄存器记起来又是谈何easy。于是 ST(意法
    半导体)推出了官方固件库。固件库将这些寄存器底层操作都封装起来,提供一整套接口(API)
    供开发人员调用,大多数场合下,你不须要去知道操作的是哪个寄存器,你仅仅须要知道调用哪些
    函数就可以。

    比方上面的控制 BRR 寄存器实现电平控制,官方库封装了一个函数:
    void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
    {
    ALIENTEK 战舰STM32开发板
    www.openedv.com
    37
    GPIOx->BRR = GPIO_Pin;
    }


    这个时候你不须要再直接去操作 BRR 寄存器了。你仅仅须要知道怎么使用 GPIO_ResetBits()这个
    函数就能够了。在你对外设的工作原理有一定的了解之后。你再去看固件库函数,基本上函数
    名字能告诉你这个函数的功能是什么,该怎么使用,这样是不是开发会方便非常多?
    不论什么处理器。无论它有多么的高级,归根结底都是要对处理器的寄存器进行操作。可是固
    件库不是万能的,您假设想要把 STM32 学透。光读 STM32 固件库是远远不够的。你还是要了
    解一下 STM32 的原理,而这些原理了解了。你在进行固件库开发过程中才可能得心应手游刃
    有余。

  • 相关阅读:
    在循环中禁止remove/add
    [算法竞赛入门]WERTYU
    [算法竞赛入门]Tex Quotes
    [算法竞赛入门]竖式问题
    [算法竞赛入门]蛇形填数
    [C++面试]关于const的使用方法
    [C++面试]单例模式-设计模式
    [C++面试]C++的三种继承(public/protected/private继承)
    用微服务架构,有哪些好处?
    东软数据可视化分析, 已经方便成这样?!
  • 原文地址:https://www.cnblogs.com/llguanli/p/6822515.html
Copyright © 2011-2022 走看看