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
浙公网安备 33010602011771号