闻一爸爸的博客

 

arm LPC2400学习贴

 

GPIO

学习GPIO先要了解引脚的功能配置。因为一个引脚上可能有多个功能。

PINSEL寄存器控制着引脚的功能,其中每一对bit控制相应的设备的引脚。

 

从图中可以看到相应的两个位为00时,定义了引脚的功能为gpio.

(只有定义了gpio功能后,引脚的方向控制位才能有效)

PINMODE寄存器控制着片内的上拉下拉电阻。

 

疑问:上拉下拉电阻对输入有影响,对输出有影响吗?

现在假设要设定p3.27为gpio输出.先要看哪个pinsel寄存器控制它。

 

从上图可以看出pinsel3[23:22]两位控制着p3.27的功能,当为00时功能为gpio,所以可以写

P3_27=0X3<<22;

PINSEL3=PINSEL3 &(~P3_27);

终于来到了gpio

gpio有快速和慢速之分,快速gpio功能:

gpio port0/1 可以用快速或慢速寄存器访问。使用慢速主要与原来的程序兼容。否则使用快速。

快速pio寄存器位于内部总线,速度快,而且可以字节半字操作,还可以使用mask操作。

这里只用fast gpio.fast gpio 寄存器说明

 

 

 

 

 

 

 

首先看方向控制,

FIOXDIR 每一位控制一个输出引脚,1为输出,0为输入。

也可以字节、半字访问,FIOXDIR[0/1/2/3/L/U]

设置p3.27为输出,

FIO3DIR=FIO3DIR|P3_27

 

控制相应的位用ioset ioclr ,或直接iofpin

 

 

 

 

 

 

 

 

posted on 2009-03-24 13:40  闻一爸爸  阅读(591)  评论(0)    收藏  举报

导航