【单片机基础小知识-如何通过指针来读写寄存器】

寄存器的本质就是内存,RAM,而指针是可以对内存进行操作的,因此可以通过指针来读写寄存器。


如何读取以下一片地址:

步骤1、首地址

结构体,它所占用的内存空间大小与它内部成员有关。

构造一个28字节的类型

c 复制代码
typedef struct{  //每个模块都有几个寄存器,而这几个寄存器都是按照顺序连续排放在内存中,只要找到首地址,也就是读数据的第一个地址,需要告知(地址+数据类型)
	unsigned int CRL;  //1-4
	unsigned int CRH;  //5-8
	unsigned int a3;  //9-12
	unsigned int a4;  //13-16
	unsigned int a5;
	unsigned int a6;
	unsigned int a7;
}GPIO_A;
//现在我们访问一个变量,这个变量是一个结构体,一共占用了28个字节,那么这个指针也必须是这个结构体类型的,这称为强制类型转换
#define MyGPIOA ((GPIO_A*)0x40010800)  //首先告诉CPU这是一个地址,这个地址读什么类型的数据呢,读结构体类型的数据,那么这个结构体类型的数据占用28字节空间,我们给这个指针取了一个名字,MyGPIOA
int main(void){
	int a = 2;  //int 类型数据,需要通过int类型的指针读取该数据
	int *p;
	p = &a;
	MyGPIOA->CRH = 2; //通过这种方式对寄存器进行操作
	
	while(1)
	{

	}
}
相关推荐
@NachoNEKO1 小时前
一种资源有限单片机处理cJSON数据的方法
单片机·嵌入式硬件
qq_301881691 小时前
XD08M3232接近感应单片机的接近感应模块的工作原理
单片机·嵌入式硬件·硬件架构
爱学习的小旭1 小时前
STMCubeMX使用TB6612驱动编码轮并进行测速
单片机·嵌入式硬件
不脱发的程序猿2 小时前
MCU裸机程序如何移植到RTOS?
单片机·嵌入式硬件·rtos
PAQQ2 小时前
【python】windows实现与k230使用socket通信并传输文件
python·stm32·单片机
小智学长 | 嵌入式2 小时前
单片机-STM32部分:14、SPI
单片机·嵌入式硬件
深圳市青牛科技实业有限公司3 小时前
D2203使用手册—高压、小电流LDO产品4.6V~36V、150mA
人工智能·单片机·嵌入式硬件·电动工具·工业散热风扇
SY师弟4 小时前
51单片机——交通指示灯控制器设计
c语言·单片机·嵌入式硬件·51单片机
weixin_413920614 小时前
标签部件(lv_label)
单片机·嵌入式硬件
2301_800399724 小时前
stm32 ADC单通道转换
stm32·单片机·嵌入式硬件