找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3782|回复: 0
打印 上一主题 下一主题
收起左侧

LPC2103之GPIO寄存器

[复制链接]
跳转到指定楼层
楼主
ID:105323 发表于 2016-2-13 00:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
GPIO port 0模式选择寄存器
GPIO0Mbit0GPIO port0模式选择。当其为0时,GPIO通过APB地址进行访问(LegacyGPIO),当其为1时,使能高速GPIO port 0GPIO通过片上存储区访问(FastGPIO)。

管脚功能选择寄存器
PINSEL0PINSEL1
PINSEL0和PINSEL1寄存器控制各个管脚的功能(查看datasheet的Table 62和Table63)。IO0DIR寄存器的方向控制位仅仅当相应管脚的GPIO功能使能时有效。管脚在其它功能时,CPU自动配置管脚方向。
PINSEL0PINSET1
功能
复位值
00
主要功能,作为GPIO管脚
00
01
第一复用功能
10
第二复用功能
11
第三复用功能
32bit寄存器PINSEL0对应PIN0.0-PIN0.1532bit寄存器PINSEL0对应PIN0.16-PIN0.31

GPIO控制寄存器:
慢速GPIO控制寄存器 (APB访问寄存器)
寄存器
描述
访问
复位值
地址
IOPIN
GPIO管脚值寄存器。不论管脚方向如何,管脚当前值都可以在该寄存器读出
R(推荐只读,否则会发生不可预料情况)
NA
0xE002 8000
IO0PIN
IOSET
GPIO管脚置位寄存器。写1将相应管脚置高电平,写低无效。
R/W
0x0000 0000
0xE002 8004
IO0SET
IODIR
GPIO管脚方向控制寄存器。该寄存器独立控制每个管脚方向,写1置相应管脚为输出。
R/W
0x0000 0000
0xE002 8008
IO0DIR
IOCLR
GPIO管脚清除寄存器。写1将相应管脚置低电平,写低无效。
WO
0x0000 0000
0xE002 800C
IO0CLR
快速GPIO控制寄存器 (本地接口存储访问寄存器——增强的GPIO特性)
寄存器
描述
访问
复位值
地址
FIODIR
快速GPIO管脚方向控制寄存器。该寄存器独立控制每个管脚方向,写1置相应管脚为输出。
R/W
0x0000 0000
0x3FFF C000
FIO0DIR
FIOMASK
快速GPIO管脚屏蔽寄存器,对快速IO管脚的任何操作只有在对该寄存器对应位激活(写0)时有效
R/W
0x0000 0000
0x3FFF C010
FIO0MASK
FIOPIN
快速GPIO管脚值寄存器。
R/W
NA
0x3FFF C014
FIO0PIN

FIOSET
GPIO管脚置位寄存器。写1将相应管脚置高电平,写低无效。
R/W
0x0000 0000
0x3FFF C018
FIO0SET
FIOCLR
GPIO管脚清除寄存器。写1将相应管脚置低电平,写低无效。
WO
0x0000 0000
0x3FFF C01C
FIO0CLR

首先,要明确,对IOSET和ISCLR写0是没有效果的,即等于没操作。

在写1602的驱动时,发现并没有像先前的51,或者是430那样可以给8个管脚直接赋值的寄存器。由于置1和清0要靠IOSET和IOCLR两个寄存器配合完成,所以写起来不像以前那么直接。最后,我想了个比较还算可以的方法,假设要赋给液晶D0~D7的值为dat,可以这样写:IOSET=dat<<(D0在哪个管脚);IOCLR=(~dat)<<(D0在哪个管脚);这种写法,把该置1的和该清0的都完成了,而且互相不会影响。


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表