形式: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电平工作的芯片传输数据。
|