您的位置 首页 资料

根据ARM单片机中的部分寄存器地址为什么会相差4

基于ARM单片机中的部分寄存器地址为什么会相差4-计算机、单片机都是以字节为单位进行存储的。这里的4就是4个字节的意思。上面列举的LPC1114是ARM Cortex-M0内核,STM32是ARM Cortex-M3内核,这两ARM单片机都是32位的。1个字节是8位,4个字节就是32位。32位单片机的寄存器基本上是32位的,8位单片机的寄存器基本上也是8位的。

图中是LPC1114用户手册系统控制模块(SYSCON)中的部分寄存器,请看赤色框内,地址相差0x4。为什么会相差4?许多初学者问我这个问题,高手就请绕过吧。

根据ARM单片机中的部分寄存器地址为什么会相差4

计算机单片机都是以字节为单位进行存储的。这儿的4便是4个字节的意思。上面罗列的LPC1114是ARM Cortex-M0内核,STM32是ARM Cortex-M3内核,这两ARM单片机都是32位的。1个字节是8位,4个字节便是32位。32位单片机的寄存器基本上是32位的,8位单片机的寄存器基本上也是8位的。

翻开你从前用过的reg51.h文件,看看一般51单片机的寄存器地址映射,总共不到100个寄存器,几下就写完了。可是ARM单片机内部的模块十分多,寄存器也十分多,寄存器地址映射文件假如像51那样写,也能够,可是还有一种更有利于程序阅览和书写的而办法,便是使用结构体,所以当你翻开ARM单片机的寄存器映射文件后(例如lpc11xx.h、stm32f10x_map.h),你会看到,他们的地址悉数选用结构体的方式,一个同类模块的一切寄存器被放在了同一个结构体内部。在今后写程序的时分,不论是书写仍是阅览,都有很大的效果。例如下面一条句子:

LPC_SYSCON-》PRESETCTRL=0x1;

从句子中就能够看出,这是在对SYSCON模块中的PRESETCRTL寄存器进行装备。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/346908.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部