我對gpio的研究也才僅僅達到了基本會用的程度,所以如有問題,請指出。
注:我測試了一下,我這個板子的p55不能用來輸出gpio訊號,可能被其他地方占用了,所以在選擇之前,一定要避免衝突。函式
函式引數說明
兩者的引數格式一樣。都是**(gpio埠基位址,gpio引腳位權,gpio引腳值)
** 看郭書軍老師的《arm cortex-m4+wi-fi mcu應用指南 cc3200 iar基礎篇》,知道這部分,其實可以用上層函式 gpio_if_getportnpin()和gpio_if_set()輸出,此時 只需要輸入的引數僅有:引腳名稱就可以輸出了,可是由於我c語言基礎不好以及iar基礎不好,其中有個錯誤沒有搞定,也趕時間接著向下面做,就在會用的時候結束了。
而現在我們需要輸入的引數就比較多了:gpio埠基位址,gpio引腳位權,gpio引腳值
分享我製作的乙個gpio引腳圖
注:跟pin mux tool軟體上對照,發現有些不對照,所以有點不建議你參考。
以及書上的gpio引腳的掃瞄圖
說了這麼多廢話,可能說的並不清楚。下面用簡潔的語言來提煉一下如何使用。
你要清楚你要用的是哪個引腳,這個引腳不要在其他地方有使用的衝突,這個引腳的gpio是第幾個,它是哪一組的gpio(一共也就四組,圖都給你了,)
你需要修改的引數絕大部分都可以通過pin mux tool 軟體,進行輸入。除了寫gpio引腳(gpiopinwrite)和讀gpio引腳(gpiopinread)它的三個引數分別是:gpio埠基位址、gpio引腳位權、gpio引腳值。
埠基位址的取值範圍
gpioa0_base,
gpioa1_base,
gpioa2_base,
gpioa3_base,
gpioa4_base //其實我不理解怎麼會有這個
gpio引腳位權的取值範圍(當然,你也可以直接輸它對應的值)
//此部分內容在 gpio.h 中
#define gpio_pin_0 0x00000001 // gpio pin 0
#define gpio_pin_1 0x00000002 // gpio pin 1
#define gpio_pin_2 0x00000004 // gpio pin 2
#define gpio_pin_3 0x00000008 // gpio pin 3
#define gpio_pin_4 0x00000010 // gpio pin 4
#define gpio_pin_5 0x00000020 // gpio pin 5
#define gpio_pin_6 0x00000040 // gpio pin 6
#define gpio_pin_7 0x00000080 // gpio pin 7
gpio引腳值如果輸出的是0,那就是填0了,如果輸出那一位的值,那就是複製上面的gpio引腳位權的取值範圍。
對了,忘記說了,我這裡並沒有涉及到 引腳的輸出強度,這個我試了一般情況下,可以不用寫,函式是pinconfigset()。
學習參考資料:
第一章 學習cc3200 gpio輸出 - csdn部落格
一起學CC3200之軟體延時
c檔案 asm sect text softdelayus n clink n thumbfunc softdelayus n thumb n global softdelayus n softdelayus n lsr r1,r1,3 n mul r0,r1 n sub r0,6 n nop n ...
008 Linux驅動之 IO口的配置
1.測試 配置s3c2440的gpf4,5,6為輸出 2.測試io的位址從晶元手冊中獲取以下資料 3.從上面可以看出配置輸出對應的設定是01 輸出,那麼對應位如 9 8 需要設定成 01 4.解析配置之前我們需要先將對應io使用命令 設定成00,然後使用命令 設定成01 5.則可使用命令 gpfco...
關於TI藍芽CC2541的學習 I O配置
1.cc2541的核心為51內,有21個數字輸入 輸出的i o口,可以作為普通的i o也可以作為外設的埠使用。1.1普通i o口。cc2541復位是i 0預設是上拉,即輸出高電平。出p1.0和p1.1,因為其沒有上拉和下拉電阻 作為通用i o時,cc2541的引腳可分為三組每個8位的埠,即0埠,1埠...