標(biāo)題: LPC2103之GPIO寄存器 [打印本頁(yè)]

作者: 51黑黑黑    時(shí)間: 2016-2-13 00:14
標(biāo)題: LPC2103之GPIO寄存器
GPIO port 0模式選擇寄存器
GPIO0Mbit0GPIO port0模式選擇。當(dāng)其為0時(shí),GPIO通過(guò)APB地址進(jìn)行訪問(wèn)(LegacyGPIO),當(dāng)其為1時(shí),使能高速GPIO port 0,GPIO通過(guò)片上存儲(chǔ)區(qū)訪問(wèn)(FastGPIO)。

管腳功能選擇寄存器
PINSEL0PINSEL1
PINSEL0和PINSEL1寄存器控制各個(gè)管腳的功能(查看datasheet的Table 62和Table63)。IO0DIR寄存器的方向控制位僅僅當(dāng)相應(yīng)管腳的GPIO功能使能時(shí)有效。管腳在其它功能時(shí),CPU自動(dòng)配置管腳方向。
PINSEL0PINSET1
功能
復(fù)位值
00
主要功能,作為GPIO管腳
00
01
第一復(fù)用功能
10
第二復(fù)用功能
11
第三復(fù)用功能
32bit寄存器PINSEL0對(duì)應(yīng)PIN0.0-PIN0.15;32bit寄存器PINSEL0對(duì)應(yīng)PIN0.16-PIN0.31。

GPIO控制寄存器:
慢速GPIO控制寄存器 (APB訪問(wèn)寄存器)
寄存器
描述
訪問(wèn)
復(fù)位值
地址
IOPIN
GPIO管腳值寄存器。不論管腳方向如何,管腳當(dāng)前值都可以在該寄存器讀出
R(推薦只讀,否則會(huì)發(fā)生不可預(yù)料情況)
NA
0xE002 8000
IO0PIN
IOSET
GPIO管腳置位寄存器。寫1將相應(yīng)管腳置高電平,寫低無(wú)效。
R/W
0x0000 0000
0xE002 8004
IO0SET
IODIR
GPIO管腳方向控制寄存器。該寄存器獨(dú)立控制每個(gè)管腳方向,寫1置相應(yīng)管腳為輸出。
R/W
0x0000 0000
0xE002 8008
IO0DIR
IOCLR
GPIO管腳清除寄存器。寫1將相應(yīng)管腳置低電平,寫低無(wú)效。
WO
0x0000 0000
0xE002 800C
IO0CLR
快速GPIO控制寄存器 (本地接口存儲(chǔ)訪問(wèn)寄存器——增強(qiáng)的GPIO特性)
寄存器
描述
訪問(wèn)
復(fù)位值
地址
FIODIR
快速GPIO管腳方向控制寄存器。該寄存器獨(dú)立控制每個(gè)管腳方向,寫1置相應(yīng)管腳為輸出。
R/W
0x0000 0000
0x3FFF C000
FIO0DIR
FIOMASK
快速GPIO管腳屏蔽寄存器,對(duì)快速IO管腳的任何操作只有在對(duì)該寄存器對(duì)應(yīng)位激活(寫0)時(shí)有效
R/W
0x0000 0000
0x3FFF C010
FIO0MASK
FIOPIN
快速GPIO管腳值寄存器。
R/W
NA
0x3FFF C014
FIO0PIN

FIOSET
GPIO管腳置位寄存器。寫1將相應(yīng)管腳置高電平,寫低無(wú)效。
R/W
0x0000 0000
0x3FFF C018
FIO0SET
FIOCLR
GPIO管腳清除寄存器。寫1將相應(yīng)管腳置低電平,寫低無(wú)效。
WO
0x0000 0000
0x3FFF C01C
FIO0CLR

首先,要明確,對(duì)IOSET和ISCLR寫0是沒(méi)有效果的,即等于沒(méi)操作。

在寫1602的驅(qū)動(dòng)時(shí),發(fā)現(xiàn)并沒(méi)有像先前的51,或者是430那樣可以給8個(gè)管腳直接賦值的寄存器。由于置1和清0要靠IOSET和IOCLR兩個(gè)寄存器配合完成,所以寫起來(lái)不像以前那么直接。最后,我想了個(gè)比較還算可以的方法,假設(shè)要賦給液晶D0~D7的值為dat,可以這樣寫:IOSET=dat<<(D0在哪個(gè)管腳);IOCLR=(~dat)<<(D0在哪個(gè)管腳);這種寫法,把該置1的和該清0的都完成了,而且互相不會(huì)影響。







歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1