兜兜转转最后再次回到单片机操作的最本质问题(主要是昨天有人问我学51要学什么,是否要在51上花费太多时间,我当时回答是要学好定时器,GPIO模式,和寄存器的概念),然后被问到什么是寄存器,我支支吾吾说不太明白,这时我的理解深刻理解到我还不够清晰
1,什么是寄存器?
首先我们要明白,寄存器只是一个别名,只是在存储器中有一个地址,这个地址是用来控制设备的开关,我们对这个开关进行操作就可以得到想要的结果
例如:在存储器中有一块地址,这块一共有一位,我们把它叫做寄存器m,寄存器m=【0】,假设这块地址是控制某个GPIO口输出高低电平的状态,当我们没有对它进行修改的时候,他就默认输出低电平,当我们需要对这个寄存器进行修改的时候,寄存器m=【1】,这时候此GPIO引脚就变成了高电平
2,如何操作这个寄存器?
在要进行操作寄存器之前,要明白寄存器的地址是固定的,是厂家自动初始化的,我们只要按照厂家给的地址进行操作,对应的数字电路就会进行运行
例如:已知寄存器m的地址是0x0000 0001
#denfine 寄存器m ( (uint32_t*) (0x00000001) )
*寄存器m=1;
这样就可以让那某个GPIO口输出高电平了
3,存储器和寄存器
存储器将它的内存分成n个单元,每一个单元存储这对单片机在作用上分别不同的类别。寄存器就是存储器上具有可以控制电路功能的一个地方
4,CPU和存储器
CPU是32位的,那么它排列组合就可以组成2^32个结果,这些排列组合就可控制2^32的地址