首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 驱动开发 >

ARM芯片GPIO等寄存器的地址 常见的此类地址有什么啊解决方法

2012-03-26 
ARM芯片GPIO等寄存器的地址 常见的此类地址有什么啊小弟正在看嵌入式 水平非常的水还请各位大侠不吝点化看

ARM芯片GPIO等寄存器的地址 常见的此类地址有什么啊
小弟正在看嵌入式 水平非常的水
还请各位大侠不吝点化
看程序中有如下语句

C/C++ code
#define GPBCON                  (*(volatile unsingned long *)0x56000010)#define GPBDAT                  (*(volatile unsingned long *)0x56000014)#define GPB5_out                (1<<(5*2))GPBCON=GPB5_out;                //GPB5引脚设置为输出GPBDAT&=~(1<<5);                //GPB5输出低电平



问题1.定义的那个宏GPBCON对应的地址哪位高手有整理过相关的资料 就是各种寄存器的地址 每个寄存器各个位所代表的含义哪里有介绍啊
问题2.这一行#define GPB5_out (1<<(5*2))那个位移操作里面的5*2是什么东西呀

小弟特别特别水!希望大侠们指点!

[解决办法]
我也不怎么懂,
不过第二个问题是5乘以2的意思是不
[解决办法]
每个寄存器所代表的含义及为什么是后面的地址,请查阅芯片的用户手册

至于用5*2而不是直接用10,应该是编程习惯问题,主要是想从代码上更好的表达意图

[解决办法]
每个芯片的各寄存器地址及各位功能都不相同,没办法总结,具体应用到哪个芯片就看哪个芯片的DATASHEET。
[解决办法]
寄存器地址在那个DATASHEET里面,5*2是习惯问题,比如5*1可能是一个意思,5*3是另外一个,直接用5,15失去了意义了。
[解决办法]
和手册对着看,千万不要看着程序瞎琢磨。嘿嘿
[解决办法]
探讨

问题1.定义的那个宏GPBCON对应的地址哪位高手有整理过相关的资料 就是各种寄存器的地址 每个寄存器各个位所代表的含义哪里有介绍啊
问题 2.这一行#define GPB5_out (1<<(5*2))那个位移操作里面的5*2是什么东西呀

[解决办法]
LS的第二点我有不同看法.
#define GPB5_out (1<<(5*2))
GPBCON=GPB5_out; //GPB5引脚设置为输出

其实是设置积存器GPBCON(地址:0x56000010) = 1<<(5*2)
从代码注释"//GPB5引脚设置为输出",看,GPBCON=GPB5_out;应该是配置某组GPIO的第10根因脚成输出模式.

说实话,这代码不怎么好.
应该这样
define BIT10 (1<<10)
GPBCON|=BIT10;
GPBDAT&=~(BIT10);

热点排行