自己写库—构建库函数雏形
2016-07-02 16:33
330 查看
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。
总结
以上所说的软件库是指“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。
总结
相关文章推荐
- Scala入门学习笔记四--List使用
- 现在输入n个数字,以逗号分开,然后可选择升或者降序排序,按提交键在另一个页面显示
- ubuntu下golang环境配置
- LDA相关论文汇总
- CVPR16论文阅读2
- 中国剩余定理的简单应用之生理周期
- xiaoming.us量化工具
- 初涉JavaScript 3
- webservices输出图像时不能正常显示
- Shell编程之条件判断和流程控制
- 散列表
- Ubuntu 15.04 + CUDA7.5 + Caffe 配置笔记
- 计算机的组成 —— usb 篇
- Python 输入和输出
- Python 输入和输出
- 318MaximumProductofWordLengths
- android 底部弹出提示框的实现方式
- 背包三讲
- Maven is executing in offline mode. Any artifacts not already in your local repository will be inacc
- 自定义通知栏,并注册点击事件