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软件中新建一个文件夹
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步