购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2. 3.2 LPC17XX的引脚配置寄存器

LPC17XX的引脚功能是复用的。引脚连接模块使得LPC17XX的大部分引脚具有 1 个以上的功能。配置寄存器控制多路开关以实现引脚与片内外设之间的连接。

在使用外设时,外设应先连接到适当的引脚,再激活,需要时使能相关中断。任何一个没有映射到相关功能引脚的使能外设,都将被认为是未定义的。当选择了引脚上的 1 个功能时,该引脚上的其他可用功能无效。

引脚连接模块共有 27 个寄存器,分别是 11 个引脚功能寄存器、10 个引脚模式寄存器、5 个开漏模式控制寄存器、1 个I2C引脚配置寄存器。

注意: LPC177X/8X的寄存器使用与此不同,采用的是每个引脚有一个独立寄存器的形式。

1.引脚功能选择寄存器

PINSEL寄存器控制器件引脚的功能如表 2-24 所示。每个寄存器有 32 位,2 比特为一组,寄存器中的每一组位对应着特定的器件引脚功能。以P0 端口为例,PINSEL0 寄存器的[1:0]位用于P0[0]引脚;[3:2]用于P0[1]引脚;[31:30]控制P0[15]。PINSEL1 寄存器中的[1:0]用于P0[16]引脚;[3:2]用于P0[17]引脚;[31:30]用于P0[31]引脚。

PINSEL0~PINSEL9 寄存器,每两个寄存器控制一个端口组:PINSEL0 用于P0[0:15];PINSEL1 用于P0[31:16];PINSEL2 用于P1[0:15];PINSEL3 用于P1[31:16];PINSEL4 用于P2[0:15];PINSEL5 用于P2[31:16];PINSEL6 用于P3[0:15];PINSEL7 用于P3[31:16];PINSEL8 用于P4[0:15];PINSEL9 用于P4[31:16]。

表 2-24 引脚功能选择寄存器的位描述

仅当引脚选择GPIO功能时,GPIO寄存器中的方向控制位才有效。对于其他功能来说,方向是自动控制的。每个外围器件通常有不同的引脚配置,因此每个引脚可能有不同的功能组合。

既然一个特定的外设功能可以指派给一个或多个引脚,则原则上配置多个引脚执行相同功能是可行的。如果一个外设输出功能被配置到多个引脚上,它将在多个引脚上都输出外设功能信号。如果一个外设输入功能配置到多个引脚上,将读出最低端口号。例如,P0 端口上的所有引脚优先级高于其余端口;所有端口中的引脚 0 的优先级高于本端口其他端口的优先级。

2.引脚模式选择寄存器(PINMODE)

如表 2-25 所示是引脚模式选择寄存器的位描述,该寄存器用于控制所有端口的工作模式,包括使用片内上拉/下拉电阻和特定的开漏操作。除用于I2C0 接口的I2C引脚和USB引脚外,不管引脚选择用做何种功能,都可以为每一个端口引脚选择片内上拉/下拉电阻。使用三个位来控制端口引脚的模式,其中两个位于PINMODE中,另一个位于PINMODE_OD中。在PINSEL中未使用的引脚看成保留位。

表 2-25 引脚模式选择寄存器的位描述

当引脚处于逻辑高电平时,中继模式使能上拉电阻;当引脚处于逻辑低电平时,使能下拉电阻。当引脚配置为输入且不是通过外部驱动时,引脚将保持上一个已知状态。

如表 2-26 所示是开漏引脚模式选择寄存器(PINMODE_OD)的位描述,该寄存器用于控制端口的开漏模式。当引脚被配置为输出且值为 0 时,开漏模式会正常地将引脚电平拉低。但是如果输出引脚值为 1,则引脚的输出驱动关闭,等同于改变了引脚的方向。这样的组合就模拟了一个开漏输出。

表2-26 开漏引脚模式选择寄存器的位描述

如表 2-27 所示是引脚连接模块的寄存器总表。当外部复位、看门狗复位、上电复位(POR)和掉电检测复位(BOD)发生时,引脚连接模块中的所有寄存器均复位为“0”。

表 2-27 引脚连接模块的寄存器总表

续表

注:[1]复位值仅反映已使用位中保存的数据,不包含保留位的内容。

3.固件库函数

在lpc17xx_pinsel.c文件中包含了关于引脚配置的调用函数。主要有 3 个配置函数,分别是:

下列程序给出了PINSEL_CFG_Type的定义,以及使用PINSEL_ConfigPin函数进行端口引脚配置时传递的结构体: vAMA++pZEYnODoHhTnTGgeIWXlHpTW7l9WzaMJ7oMKAd0y04Us807Le52yLv3aDP

点击中间区域
呼出菜单
上一章
目录
下一章
×