LPC2400

功能上,208個引腳分爲P0口,P1口,P2口,P3口,P4口,電源,復位,晶振,其他引腳。

 

P0~P4都是32位雙向多功能I/O口,每位的方向可單獨控制,且每位的功能取決於引腳連接模塊的引腳功能選擇。引腳具體用於什麼外設功能是由引腳連接模塊進行配置來實現的。

 

在使用外設時,應當在激活外設以及使能任何相關的中斷之前,將外設連接到相應的引腳上。否則,即使使用引腳連接模塊激活外設,此激活也是無效的。

 

一、引腳功能選擇寄存器

PINSEL0~PINSEL10,共十一個,每個寄存器32位,每2個比特用於控制1個引腳功能選擇。

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]

也就是每2個寄存器控制一個端口組,P0,P1,P2,P3,P4共5個端口組。

其中PINSEL10未用。

 

每一對比特可取00,01,10,11四個值,以選擇不同的功能。每個引腳都有固定的定義。

有些引腳只有2種功能,就只取00,01值

 

 

二、引腳模式寄存器

PINMODE0~PINMODE9,共十個,每個寄存器32位,每2個比特用於控制1個引腳功能選擇。也是每2個寄存器控制一個端口組,P0,P1,P2,P3,P4共5個端口組。

 

它爲所有的GPIO端口控制片內上拉/下拉電阻特性。

使用片內上下拉電阻時,若引腳信號不確定,上拉時爲高電平,下拉爲低電平。

00 上拉

01 保留

10 不用上拉也不用下拉

11 下拉

 

PINSEL0~10,PINMODE0~9,地址分別0xE002 C000~ 0xE002 C028, 0xE002 C040~ 0xE002 C064

也就是16*2+8=40,20/10=4

16*2+4=36,36/9=4

每個寄存器佔4個存儲空間。

 

 

三、設置

比如要設置P0[2]和P0[3]的PINSEL值爲01,11,則寫:

PINSEL0=0X0000 0700;     或   PINSEL=0X07<<4;

 

因爲是每2比特控制一個引腳,所以用十六進制表示時,每位16進制轉化爲4位二進制。所以1個字節有8*4=32位,可以表示完一個端口組。

 

一般情況下,爲了不影響其他端口的設置,應該先讀取再寫。

PINSEL0=(PINSEL0 & 0XFFFF FF0F)| (0X07<<4);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章