读书频道 > 移动开发 > Android > Arduino开发实战指南:STM32篇
2.3.1 pinMode()函数
2013-11-08 10:29:50     我来说两句 
收藏    我要投稿   
本书主要面向非电子专业的读者,介绍了兼容Arduino的Maple控制器的编程方法与基础电路设计。书中有大量代码和硬件电路实例,使非专业的读者更易上手。Maple控制器编程简单,功能强大,采用了基于ARM Cortex-M3内  立即去当当网订购

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

点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:2.3 通用输入输出
下一篇:2.3.2 digitalWrite()函数
相关文章
图文推荐
3.6.4 框架MVC实例分
3.6.3 框架MVC思路讲
3.5 认识Smarty模板
3.3 使用JSON通信
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站