自己写库—构建库函数雏形
Posted 郭润
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自己写库—构建库函数雏形相关的知识,希望对你有一定的参考价值。
1、什么是 STM32 函数库
以上所说的软件库是指“STM32 标准函数库”,它是由 ST公司针对 STM32提供的函数接口,即 API (Application Program Interface),开发者可调用这些函数接口来配置 STM32的寄存器,使开发人员得以脱离最底层的寄存器操作;
实际上,库是架设在寄存器与用户驱动层之间的代码,向下处理与寄存器直接相关的配置,向上为用户提供配置寄存器的接口。
库开发方式与直接配置寄存器方式的区别见图 8-1!!!!!!!
2、为什么采用库来开发及学习?
、、、、、、、
现在 STM32F1 系列和 STM32F4 系列各有一套自己的函数库,但是它们大部分是兼容的,F1 和 F4 之间的程序移植,只需要小修改即可。要想修炼 C 语言,就从 ST的库开始吧。所以在以后的章节中,使用软件库是我们的重点,而且我们通过讲解库 API去高效地学习 STM32的寄存器,并不至于因为用库学习,就不会用寄存器控制 STM32芯片。
3、构建库函数锥形
1)修改寄存器地址封装
2)定义访问外设的结构体指针
乍一看,除了最后一部分,把 BSRR 寄存器分成 BSRRH 和 BSRRL两段,其它部分跟直接用绝对地址访问只是名字改了而已,用起来跟上一章没什么区别。这是因为我们现在只实现了库函数的基础,还没有定义库函数。
定义位操作函数
3)定义初始化结构体GPIO_InitTypeDef
4)定义引脚模式的枚举类型
5) 定义 GPIO初始化函数
6)全新面貌,使用函数点亮 LED灯
完成以上的准备后,我们就可以自己定义的函数来点亮 LED 灯了,见代码清单 8-15。
总结
以上是关于自己写库—构建库函数雏形的主要内容,如果未能解决你的问题,请参考以下文章
Angular 6 库:在 CI 管道中构建库以创建 lib 版本