打印
[LPC]

LPC2124头文件(LPC21xx.h)中宏的解释

[复制链接]
2738|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
little666666|  楼主 | 2013-10-22 15:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
刚接触这块,哪位大侠给解释一下LPC21xx.h中宏的具体意思啊?
/* Pin Connect Block */
#define PINSEL0        (*((volatile unsigned long *) 0xE002C000))
#define PINSEL1        (*((volatile unsigned long *) 0xE002C004))
#define PINSEL2        (*((volatile unsigned long *) 0xE002C014))

/* General Purpose Input/Output (GPIO) */
#define IOPIN0         (*((volatile unsigned long *) 0xE0028000))
#define IOSET0         (*((volatile unsigned long *) 0xE0028004))
#define IODIR0         (*((volatile unsigned long *) 0xE0028008))
#define IOCLR0         (*((volatile unsigned long *) 0xE002800C))
#define IOPIN1         (*((volatile unsigned long *) 0xE0028010))
#define IOSET1         (*((volatile unsigned long *) 0xE0028014))
#define IODIR1         (*((volatile unsigned long *) 0xE0028018))
#define IOCLR1         (*((volatile unsigned long *) 0xE002801C))
#define IO0PIN         (*((volatile unsigned long *) 0xE0028000))
#define IO0SET         (*((volatile unsigned long *) 0xE0028004))
#define IO0DIR         (*((volatile unsigned long *) 0xE0028008))
#define IO0CLR         (*((volatile unsigned long *) 0xE002800C))
#define IO1PIN         (*((volatile unsigned long *) 0xE0028010))
#define IO1SET         (*((volatile unsigned long *) 0xE0028014))
#define IO1DIR         (*((volatile unsigned long *) 0xE0028018))
#define IO1CLR         (*((volatile unsigned long *) 0xE002801C))
解释IOPIN0、IOSET0......IO1CLR等分别代表的什么管脚,怎么跟硬件对应上

相关帖子

沙发
huangxz| | 2013-10-22 15:34 | 只看该作者
没什么啊,其实就是数字强制转换为指针类型而已。

使用特权

评论回复
板凳
little666666|  楼主 | 2013-10-22 15:50 | 只看该作者
在编程过程中我们会用到这些变量,比如
int main(void)
{
s32 p01State;
PINSEL0=0;
IO0DIR=0x000001;
IO0SET=0x000001;
while(1)
{
        p01State=IO0PIN&P0_1;
        if(p01State==0)
          {
                  IO0CLR=0x000001;
                  delay();
          }
        else
          {
                        IO0SET=0x000001;
                        delay();
          }
}
}
我就想知道这些宏参数都是什么意思?比如为什么要给PINSEL0=0赋0,PINSEL0具体对应的是LPC2124芯片上的那个管脚?

使用特权

评论回复
地板
airwill| | 2013-10-22 16:16 | 只看该作者
这些宏就是定义特殊寄存器的地址.
有了这些定义, PINSEL0=0, 编译器就知道写哪个地址了.
至于 PINSEL0 为何要赋 0? 去看 LPC2124 编程手册的 GPIO 的寄存器介绍吧

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

3

帖子

0

粉丝