找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 12784|回复: 0
收起左侧

pinMode()函数

[复制链接]
ID:193393 发表于 2017-6-1 15:49 | 显示全部楼层 |阅读模式
                形式: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所示。
20131108103032176.jpg

图2-1左图为开漏模式输出,需要外接一个上拉电阻才能得到输出电压,否则就不会有电压的输出,而右图的推挽输出可以直接得到输出信号。
这里列举一些需要使用开漏输出模式的情况:
1)在使用I2C总线进行信号传输的时候,由于协议的设计,必须使用开漏模式来输出信号,这样可以避免总线上多个设备传输信号产生冲突。
2)当需要输出TTL(5 V)电平信号的时候。由于这个5 V的电压高于了该芯片的电源电压,所以具有5 V容忍能力的引脚没法得到足够高的电源电压来输出TTL信号。利用外部上拉电阻将输出引脚连接到额外的5 V电源,能够使得这些5 V容忍引脚向以TTL电平工作的芯片传输数据。
                                
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表