理论教育 ARM嵌入式系统基础与应用:寄存器描述

ARM嵌入式系统基础与应用:寄存器描述

时间:2023-11-03 理论教育 版权反馈
【摘要】:当引脚配置为GPIO功能时,有4个寄存器用于控制GPIO的使用:IODIR、IOSET、IOCLR和IOPIN。表4-1 IODIR寄存器功能2.GPIO输出置位寄存器IOSETIOSET寄存器用于控制引脚输出高电平。写入1使对应引脚输出低电平并清零IOSET寄存器中相应位,写入0无效。

ARM嵌入式系统基础与应用:寄存器描述

当引脚配置为GPIO功能时,有4个寄存器用于控制GPIO的使用:IODIR、IOSET、IOCLR和IOPIN。IODIR用于设置端口方向,IOSET用于口线置1;IOCLR用于口线清零;IOPIN则反映当前I/O口的状态。

1.GPIO方向寄存器IODIR

IODIR寄存器用于控制引脚的方向。IODIR寄存器的功能如表4-1所列,只有当引脚选择GPIO功能时,对IODIR的设置才有意义。

表4-1 IODIR寄存器功能

978-7-111-44508-1-Chapter04-1.jpg

2.GPIO输出置位寄存器IOSET

IOSET寄存器用于控制引脚输出高电平。IOSET寄存器的功能如表4-2所列,写入1使对应引脚输出高电平,写入0无效。如果一个引脚被配置为输入或其他功能,写IOSET无效。读IOSET寄存器返回GPIO输出寄存器中的值。该值由前一次对IOSET和IOCLR(或IOPIN)的写操作决定,不反映任何外部环境对引脚的影响。

表4-2 IOSET寄存器功能

978-7-111-44508-1-Chapter04-2.jpg

3.GPIO输出清零寄存器IOCLR

IOCLR寄存器用于控制引脚输出低电平。IOCLR寄存器的功能如表4-3所列。写入1使对应引脚输出低电平并清零IOSET寄存器中相应位,写入0无效。如果一个引脚被配置为输入或其他功能,写IOCLR无效。(www.daowen.com)

表4-3 IOCLR寄存器功能

978-7-111-44508-1-Chapter04-3.jpg

假定当前P0.0=1,且IO0SET=0x01,现在要将P0.1也拉高,以下语句是等价的:

978-7-111-44508-1-Chapter04-4.jpg

因为往IO0SET写入0无效。对于IO0CLR也有类似的情况。

这是一种普遍情况:当往某个寄存器只有写入特定逻辑的值才有效,而写入反逻辑的值无效时(如只有写入1有效而写入0无效),只操作其中某一位或者某些位时,可以不必关心其他位的状态。一般情况下,有这种特性的寄存器,均会有置位和清零寄存器成对出现,如IO0SET和IO0CLR。

4.GPIO引脚值寄存器IOPIN

IOPIN寄存器用于提供GPIO引脚的值,它反映了外部环境对引脚的影响,不能反映非GPIO配置引脚状态,因此不能使用IOPIN寄存器来监控非GPIO配置引脚。IOPIN寄存器的功能如表4-4所列。

表4-4 IOPIN寄存器功能

978-7-111-44508-1-Chapter04-5.jpg

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈