形式:void pinMode(uint8 pin, WiringPinMode mode)
參數:pin為引腳編號。
mode為引腳的輸入輸出模式。
pinMode()函數常放在setup()函數中來確定引腳的功能。切記,如果在使用某引腳前沒有設定pinMode()或者pinMode設置模式不正確,引腳輸入輸出過程可能會出現一些不可預料的錯誤。pinMode()輸出模式種類如表2-3所示。
表2-3 pinMode()輸出模式種類
mode 說 明
OUTPUT 數字輸出
OUTPUT_OPEN_DRAIN 開漏模式(Open-Drain),由外部上拉電阻提供輸出引腳電源。某些數字輸出引腳通過這個模式可以輸出TTL電平的信號
INPUT 數字輸入,該狀態在未接外部電路時,由于內部電路非常敏感、電磁干擾等,會讓其讀取值為隨機的0或1
INPUT_ANALOG 模擬輸入
INPUT_PULLUP 與數字輸入相同,但是內部通過一個高阻值的電阻連接到電源,使得引腳在沒有連接外部信號的時候能夠讀取穩定的高電平信號,防止干擾
INPUT_PULLDOWN 與“INPUT_PULLUP”類似,只不過高阻值電阻連接到的是地而非電源,沒有信號時讀取的輸入是穩定的低電平
INPUT_FLOATING 和“INPUT”等效
PWM 脈寬調制輸出(詳見第2.4節)
PWM_OPEN_DRAIN 開漏輸出模式的脈寬調制輸出
代碼清單2-2通過pinMode()函數設定BOARD_LED_PIN作為輸出引腳,然后通過digitalWrite()函數與delay()函數使其以1/2 Hz的頻率閃爍。
代碼清單2-2 閃爍LED
void setup() {
pinMode(BOARD_LED_PIN, OUTPUT); // 設定LED引腳為輸出模式
}
void loop() {
digitalWrite(BOARD_LED_PIN, HIGH); // 設定LED引腳為高電平,點亮LED
delay(1000); // 等待1秒鐘
digitalWrite(BOARD_LED_PIN, LOW); // 設定LED引腳為低電平,熄滅LED
delay(1000); // 等待1秒鐘
}
Maple的數字引腳能夠提供兩種輸出模式:開漏輸出(OUTPUT_OPEN_DRAIN)與推挽輸出(OUTP-UT)。其中最常用的是推挽輸出模式“OUTPUT”。開漏輸出與推挽輸出在外部鏈接上的區別如圖2-1所示。
圖2-1左圖為開漏模式輸出,需要外接一個上拉電阻才能得到輸出電壓,否則就不會有電壓的輸出,而右圖的推挽輸出可以直接得到輸出信號。
這里列舉一些需要使用開漏輸出模式的情況:
1)在使用I2C總線進行信號傳輸的時候,由于協議的設計,必須使用開漏模式來輸出信號,這樣可以避免總線上多個設備傳輸信號產生沖突。
2)當需要輸出TTL(5 V)電平信號的時候。由于這個5 V的電壓高于了該芯片的電源電壓,所以具有5 V容忍能力的引腳沒法得到足夠高的電源電壓來輸出TTL信號。利用外部上拉電阻將輸出引腳連接到額外的5 V電源,能夠使得這些5 V容忍引腳向以TTL電平工作的芯片傳輸數據。
|