ARM 笔记(0928)-- STM32部分--03 程序的初始化 位编程 库函数编程

初始化的步骤

void laser_init()  //初始化
初始化程序干三件事   
1.打开时钟
2.配置好IO口的四个寄存器
3.让ODR强制输出为高电平,初始化的时候处于灭灯状态

6 章 位编程

6.1什么是位编程?#

不同于寄存器编程,寄存器编程虽然没有改变其他的比特位,但是依然对比特位进行了写操作。
位带操作是单独的对寄存器的某一个比特位进行操作,所以每一个比特位都要对应一个地址,
这叫做地址映射,我们把地址的映射区域叫地址别名区。

6.2位编程有什么用?#

节省程序的运行时间
简化代码

SRAM区域
内存,扩展内存,外接内存
看参考手册的总线映射部分

6.3位操作的原理#

首先,位操作是基于地址膨胀原理实现的
增大了内存的占用空间。哪些位置,可以执行位操作,
膨胀后的地址到底如何计算

通过观察手册,所有的GPIO都可以实现位带操作,

6.4如何进行位编程#

第一步 先定义膨胀后的地址#

第一行:addr:寄存器的地址 .n :地址的第几位

第二步 向膨胀后的地址里写数据

第二步 向膨胀后的地址里写数据#

DST:函数名
第一个dst_adr :膨胀后的地址
*() :

第三步 向一个寄存器特定的比特位 膨胀后的地址 里写数据#

REG :函数名
DST向函数BIBTOUND取数据

第四步 定义寄存器的地址#

第五步:对特定的寄存器执行输入输出操作#

最终位编程总结#

7库函数编程

7.1为什么需要库函数编程#

7.2库函数编程如何实现的#

7.2.1使用过结构体封装寄存器#

7.2.2使用结构体指针访问寄存器#

7.3如何进行库函数编程#

在keil软件中新建一个文件夹

库函数包支持的内容#

库函数如何查找#

posted @   L707  阅读(129)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
主题色彩