本文目录 一、c语言位操作 1. 按位逻辑运算符 2. 位移运算符 3. 寄存器位操作用法 二、gpio寄存器编写流程(如操作PG_13口。实现功能:按下key按键时,蜂鸣器响,灯亮。) 1. 需要操作的寄存器 2. 获取相应模块内存映射的基地址。(端口控制寄存器的基地址如下图所示) 3. 获取PG寄存器的起始地址 4. 地址映射:将物理地址映射为虚拟地址。 5. 计算映射后的功能寄存器和数据寄存器的地址 6. 功能寄存器的位操作 7. 数据寄存器的位操作 附录一:计算地址偏移量方法 附录二:完整代码 寄存器操作通常使用较少,因为已经有系统的库函数接口供给我们使用。本文主要为了了解如何使用寄存器来编写驱动,这里要根据实际的开发板手册进行编写。 一、c语言位操作 在操作寄存器前,我们需要复习一下c语言中的位操作。方便我们后续编写gpio寄存器。 1. 按位逻辑运算符 (1) &(按位与):有0为0,全1为1。 int a=153; // 1001 1001 int b=60; //0011 1100 a &= b