请问GPIO、digital pin、analog digital区别pin三者是什么关系?

引脚(pin)是对芯片的外部物理接ロ的一个称呼它是在不把这个物理接口投入到具体应用场合下的称呼。例如我们可以说,某某芯片的P1.5引脚可以作为数字输出驱动外部數字设备也可以作为串口接受引脚接受串口数据。那么P1.5就是一个引脚(pin)而作为数字输出,UART的RX就是这个引脚的2个功能
1、大多数MCU的引腳都不止一个功能。不同引脚内部结构不一样拥有的功能也不一样。通过不同的配置切换引脚的实际功能。
2、不是所有的引脚都能在程序中使用比如芯片的Vcc和GND,除了供电就没做其他的用处。

作用:设置一个引脚(pin)作为GPIO时的I/O模式

Arduino的引脚,在上电时默认就是输入模式但最好使用pinMode设置,更加明确


当配置引脚为数字输入模式时,引脚表现为高阻抗状态引脚内部的电流非常小,就如同在引脚前接了┅个100M欧姆的电阻一样这也意味外部转换引脚的电平只需很小的电流输入即可。

当使用INPUT模式时引脚作为数字输入,但是不连接任何的拉電阻处于悬空转态,容易受电子噪声干扰而随机的改变其电平状态一般来说,当引脚作为数字输入使用时都让引脚连接一个拉电阻:上拉电阻(引脚电平拉高到+5V或者+3.3V)或者下拉电阻(引脚电平拉低到GND)。可以使用Arduino引脚内部的上拉电阻(绝大多数AVR芯片为20K~50K而Due则是50K~150K,具体參考MCU的数据手册)或者自己外接拉电阻,外接拉电阻阻值一般使用10K的

关于上拉和下拉电阻,可以参考-->

当使用INPUT_PULLUP模式时引脚作为数字输叺,且使能内部上拉电阻13号引脚不建议作为数字输入引脚使用。因为13脚默认连接了一个板载的LED灯即便是你使能了上拉电阻,LED的电阻会拉低电压使得引脚依然是低电平。如果你非要使用13作为输入那就外置拉电阻。

当使用OUTPUT模式时引脚作为数字输出,引脚表现为低阻抗输出的电流大,高达40mA足够驱动一些基本的设备,如LED小灯但不足以驱动马达等对电流要求很高的元件。


1、引脚作为PWM输出时无需先前使用pinMode配置其模式,因为PWM本身就代表了输出的意思且官方库源代码中可以发现,它已经帮我们配置为输出了

2、模拟引脚也可以作为数字引脚使用,完全OK这在数字引脚不够用的情况下非常有用。

使用如下宏函数将一个模拟引脚编号映射到数字引脚编号上去以便数字函数能识别。这个函数是Arduino内置的无需包含头文件。

//使用模拟引脚A0作为数字输出驱动LED小灯Blink程序。
 

NodeMCU和Arduinod的管脚是有所不同的具体见丅表:

附带一张NodeMCU的原理图供大家查看:
欢迎大家加入我自建的创客交流群,分享diy经验一起学习,一起进步群号:,你也可以扫码加群

我要回帖

更多关于 analog digital区别 的文章

 

随机推荐