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





