1.引腳都有哪些功能該怎么看?
看具體引腳有什么功能,看上面的引腳圖即可,這個圖可以在LPC1114用戶手冊的第9章“Pin Configuration”找到。
2.默認的引腳功能是什么?
大部分的引腳默認功能都是GPIO,個別除外,例如P0.0引腳,默認是RESET。具體某個引腳的默認功能是什么,可以打開LPC1114用戶手冊第7章“I/O Configuration”查看引腳的寄存器。
例如,我們要看P0.2引腳的默認功能,首先打開LPC1114用戶手冊,然后找到第7章,打開7.4節(jié)前面的“+”號,把所有的引腳寄存器都展開,最后找到P0.2引腳的寄存器,就可以了。
該寄存器的前3位,也就是bit0~bit2,用來控制引腳的功能??瓷蠄D右上角的地方,Reset value就是默認的功能,000即選擇P0.2。
3.如何選擇引腳的其它復用功能?
從上面那個圖中,可以看出,我們只要給引腳寄存器中的前3位寫入規(guī)定的值,就可以變換引腳的具體功能了。例如,我們要把引腳PIO0_2選擇為CT16B0_CAP0功能,就需要給PIO0_2寄存器的前3位寫入0x2。
IOCON->PIO0_2&=~0x07;//P0.2寄存器前3位清零IOCON->PIO0_2|=0x02;//給P0.2寄存器前3位寫0x2
通過上面兩條語句,來實現(xiàn)引腳功能的選擇。這種寫法已經(jīng)成了固定的格式,以后不論修改哪個引腳的功能,都以這種形式寫。
有人會說,我直接給P0.2寄存器的前3位寫0x2可以嗎?例如:
IOCON->PIO0_2 = 0X2;
你這樣直接寫,當然可以,但是需要注意的地方很多,一不小心單片機就亂了,為什么呢?因為lpc1114作為一個32位的單片機,它的引腳寄存器也是32位的,其中的每一位,都代表著不同的控制位,這些可以查看寄存器得到,例如P0.2引腳的寄存器,它的完整寄存器定義如下:
你看它的bit4:3和bit9:6,這幾位中,有些位默認就是1,如果你要直接賦值,需要讓這些位保持原來的狀態(tài)才可以。如果直接寫0x2,那么這些原來是1的位,就成0了。所以我們在給寄存器賦值的時候,一般用“或”“與”的邏輯,改變我們想改變的位,不影響其它位的狀態(tài)。