arduinoide怎么声明10以上io口

arduinoide怎么声明10以上io口,第1张

使用pinMode(pin, mode)来设置GPIO口工作模式,mode可选比较多INPUT、OUTPUT、INPUT_PULLUP、INPUT_PULLDOWN模式(输入、输出悉明、上拉输入、下拉输入,另外还有开漏等模式),具体是否能设置对应模式还得参考技术规格书(一般的GPIO0 ~ 33可以设置为输出,基本上都可以设置为输入,GPIO6 ~ 11一般不推荐使用,因为这几个口接了存储程序用的Flash,不当使用可能引起程序崩溃);

使用digitalWrite(pin, value)来设置输出状态,value可选值为HIGH或LOW,即1和0;

使用digitalRead(pin)来读取GPIO口电平,返回值为HIGH或LOW,即1和0;

题外话:请注意ESP32的IO12,这个IO口上上电时的电平会决定外部flash(存放程序的那颗)的工作电压,上电时该脚为高则认为flash工作于1.8V,为低则认为flash工作于3.3V。常用的像是Wroom-32系列模块该脚内部已下拉,即flash是工作于3.3V的,若外部电路接强上拉则可能导致模块工作异常。

外部中断

外部中断使用方式如下:

使用attachInterrupt(uint8_t pin, void (*)(void), int mode)或attachInterruptArg(uint8_t pin, void (*)(void*), void * arg, int mode)来设置外部中断,输入参数有gpio号、中断触培陆蚂发时的回调函数、回调函数输入参数、外部中断触发模式(RISING、FALLING、CHANGE……上升沿、下配埋降沿、改变时、低电平、高电平等);

使用detachInterrupt(uint8_t pin)来关闭外部中断;

使用示例

使用下面代码进行测试:

// IO14 输出

// IO12 下拉输入模式 电平改变触发中断

// 使用导线连接 IO14 和 IO12

void callBack(void)

{

int lv = digitalRead(12)//读取加载到IO12上的电平

Serial.printf("触发了中断,当前电平是: %d\n", lv)

}

void setup()

{

Serial.begin(115200)

Serial.pr

小白自学arduino,关于IO口

include <PID_v1.h>

#include <LMotorController.h>

#include "I2Cdev.h"

#include "MPU6050_6Axis_MotionApps20.h"

#if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE

#include "Wire.h"

#endif

#define LOG_INPUT 0

#define MANUAL_TUNING 0

#define LOG_PID_CONSTANTS 0 //MANUAL_TUNING must be 1

#define MOVE_BACK_FORTH 1

#define MIN_ABS_SPEED 50

//MPU

MPU6050 mpu

// MPU control/status vars

bool dmpReady = false // set true if DMP init was successful

uint8_t mpuIntStatus // holds actual interrupt status byte from MPU

uint8_t devStatus // return status after each device operation (0 = success, !0 = error)

uint16_t packetSize // expected DMP packet size (default is 42 bytes)

uint16_t fifoCount// count of all bytes currently in FIFO

uint8_t fifoBuffer[64]// FIFO storage buffer

看情况,有两种情况:一种是单片机的IO口是强上拉(发射极开路),可以按5V算,最大输出电流可以到20mA(有些甚至可以到100mA)另一种是弱上拉渗搭,用万用表测试也是5V但是输出电流很微弱。(内部电路属于携喊轿集电极开辩肆路),我们使用过程中需要加上拉,或者用灌电流 。也有些单片几功能比较强大,把IO的电流走做得比较大的。像PIC。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12368080.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存