ARM LPC21XX 关于 PINSEL 的解释
(2008-09-16 19:11:08)转载
ARM LPC2131 关于 PINSEL 的解释
概念:引脚连接模块通过配置寄存器控制多路开关,来连接引脚与片内外设;(P0.1/
RXD0/PWM3/EINT0)
用途:引脚连接模块的用途是将引脚配置为需要的功能,可实现独立的引脚配置;
应用:引脚选择寄存器 PINSEL0、PINSEL1 的复位值都是 0x00000000;具体设置需要
参照配置表
1 PINSEL0 总共 32 位,2 个一组(暗含取值范围 00 - 11,例
如 P0.1/RXD0/PWM3/EINT0 四个功能通过 00/01/10/11 来选择),从 P0.0 到 P0.15;
2 PINSEL0 总共 32 位,2 个一组(暗含取值范围 00 - 11),从 P0.0 到 P0.15;
3 PINSEL1 总共 32 位,2 个一组,从 P0.16 到 P0.31;
4 单独将 PINSEL2 列出,是因为它比较特殊,因为对它的使用需要用“读 - 修改 - 写”
的方法来访问。
注解:对位 0 ~ 2 和/或位 3 的意外写操作,会造成调试和/或跟踪功能的丢失。
位 复位值 描 述
1:0 00 保留,用户不得向其写入 1
2 该位为 0 时,P1.36 : 26 用作 GPIO;P1.26(有个上划线,表示低电平)
该位为 1 时,P1.36 : 26 用作一个调试端口;TRACE(有个上划线,表示
低电平)
3 该位为 0 时,P1.25 : 16 用作 GPIO;P1.20(有个上划线,表示低电平)
该位为 1 时,P1.25 : 16 用作一个跟踪端口; TRACESYNC(有个上划线,
表示低电平)
31 :4 保留
一般在设置引脚的功能时,为了不影响其它的引脚都采用“读取 - 修改 – 回写”的方式进
行,即先读取寄存器值,然后进行逻辑“与”、“或”操作,再回写到此寄存器。
如将 P0.8、P0.9 设置为 TxD1、RxD1 功能(P0.8、P0.9 均对应 2 位,故其应为
17:16、19:18)
PINSEL0 = ( PINSEL0 & 0xFFF0FFFF ) | ( 0x05 << 16 ); //一次性设置完 2 个引脚,对应值
这里 0 对应的 16-19 位 //需要参照寄存器功能表
常见的,在选用 PINSEL2,使得 P1[25:16]引脚连接 GPIO 时,设置如下:
PINSEL2 = PINSEL2 & ( ~ 0x08 ); //就是将 PINSEL2 选择寄存器 2 的第 3 位设置为 0