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

固件库就是函数的集合,固件库函数的作用是向下负责与寄存器直接打交道。向上提供用户函数调用的接口(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 的原理,而这些原理了解了。你在进行固件库开发过程中才可能得心应手游刃
有余。

STM32 寄存器库和固件库相关推荐

  1. 总结基于寄存器与基于固件库stm32编程的差异

    基于寄存器与基于固件库stm32编程方式有什么差异 总的来说是专业层面或者说是应用层面的区别 总的来说是专业层面或者说是应用层面的区别 从应用角度讲,寄存器相对来说是属于更底层的,类似于驱动层,而固件 ...

  2. STM32的2.02固件库提供的启动文件详解 stm32f10x_vector.s

    当前的嵌入式应用程序开发过程里,并且C语言成为了绝大部分场合的最佳选择.如此一来main函数似乎成为了理所当然的起点--因为C程序往往从main函数开始执行.但一个经常会被忽略的问题是:微控制器(单片 ...

  3. STM32如何下载官方固件库

    ST官网拥有好多权威的资料库和例程固件库.在ST官网获取stm32f103c8t6标准例程固件库 1)登陆ST官网 官网参考网页 2)点击右上角登陆或者注册 3)当登陆成功时,点击Products-& ...

  4. STM32 keil如何下载STM32芯片F1/F4固件库 .pack文件

    1.用keil打开STM32F407的程序,结果提示下面的问题,就是没有安装固件库 2.然后去keil官网下载对应的固件库,官网地址:https://www.keil.com/ 3.然后选中对应的芯片 ...

  5. 如何在Keil官网里面下载固件库(以STM32系列主芯片固件库为例)【最新版】

    在用Keil软件进行代码编写时,第一步需要选择主芯片,如果你的Keil软件里面没有安装对应主芯片的固件库,那么将无法选择对应主芯片,以及导致后面程序无法编译成功.这时需要在网上下载对应的固件库,下载固 ...

  6. 船模制作——遥控模块 基于stm32和nrf24l01(固件库开发)

    目录 nrf24l01介绍 引脚图 引脚功能介绍 模式配置方法 官方宏 stm32配置 引脚映射 初始化函数 SPI模拟通信函数 nrf24l01配置函数 nrf24l01发射和接收 nrf24l01 ...

  7. STM32 HAL库开发转固件库开发杂谈

    前言 本文使用代码工程 STM32HAL库开发转固件库开发杂谈-嵌入式文档类资源-CSDN文库 STM32 最早提供固件库开发,在当时也是一个很大的创新.导致大量攻城狮熟悉了固件库开发,后面STM32 ...

  8. STM32F103构建固件库模板(PS固件库文件树介绍)

    参考:STM32F103ZE新建固件库模板 作者:追兮兮 发布时间:2020-10-14 10:31:45 网址:https://blog.csdn.net/weixin_44234294/artic ...

  9. 1、新建基于标准固件库MDK5工程模板(STM32F103ZET6)

    新建基于标准固件库MDK5工程模板 1.STM32官方库文件夹介绍 如上图,是ST官方提供的STM32标准固件库的文件包结构: STM32官方固件库下载地址: "https://www.st ...

最新文章

  1. 关于table和ul/ol还有span.
  2. 第一次在Linux系统上操作mysql数据库,看完这篇轻松应对
  3. php_flag .htaccess,Apache服务器中.htaccess文件的实用配置示例集锦
  4. 小程序授权第三方管理开发的流程
  5. 时间序列趋势分解 seasonal_decompose
  6. gradle mysql依赖关系,如何在gradle中找到\删除未使用的依赖关系
  7. PyQT简单入门--hello world
  8. Linux串口属性设置
  9. MATLAB去除多余点的命令,如何清除matlab命令窗口中已有的内容
  10. win10没有声音(扬声器一直显示未插入)
  11. 2020支付宝五福AR图
  12. 汇率兑换查询易语言代码
  13. 湖南大学计算机考研科目2020,2020湖南大学计算机与软件工程考研初试科目、参考书目、录取情况全解析...
  14. 使用Wamp在win7上搭WEB服务器
  15. 切比雪夫(Chebyshev)不等式
  16. MySQL语法练习---常见题型练习
  17. 什么是hql,与sql的区别
  18. 硬纪元干货|appMagics伏英娜:优质IP和直播内容嫁接,带来全新AR体验
  19. android开发中论坛帖子图片的排版
  20. 快速蒙版应用——撕纸效果

热门文章

  1. vue = 什么意思_Vue导入模块import xxx from '@/xxx'中的@是什么含义?
  2. 创建二叉树的代码_解二叉树的右视图的两种方式
  3. 数据结构专题(一):1.1顺序表初始化
  4. android 指定进程名称,android 根据进程名杀死指定、特定进程
  5. java 随机获取4个数字_java入门-验证码 今天查到的一个简单随机生成4位数字的验证码-jsp...
  6. mysql 5.5 升级_Windows下MySQL5.5升级MySQL5.7
  7. java flask_将Java与Python Flask连接
  8. 空字符python_Python中的None与 NULL(即空字符)的区别详解
  9. java 代码里设置环境变量_如何在一个java程序里设置环境变量
  10. 通过连接池无法连接mysql_连接池无法链接数据库