使用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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)