前言
在各种ESP32系列文档介绍中注明了具备各种外设通讯功能例如I2C、I2S、UART、SPI等。但是又在功能引脚上示意图没有标注这些功能是哪个引脚。这个疑问在外设管脚分配中得到了解答,诸如I2C、I2S、UART、SPI等外设接口可以被定义为任意GPIO管脚,所以就没有必要在 功能示意图上标注出来了,反正任何一个GPIO都可以赋予这些外设接口I2C、I2S、UART、SPI功能所需要的引脚某个引脚功能。
在Arduino编程环境下进行管脚定义
操作时确保arduino已经安装esp32的开发板库。
管脚定义是以.h文件的形式存储在你的arduino库中的,文件位置如下:
C:\Users\你的用户名\AppData\Local\Arduino15\packages\esp32\hardware\esp32\你的esp32库版本\variants\你的开发板\pins_arduino.h
例如,你使用的esp32版本为3.1.1,要修改esp32 c3的管脚定义,定义文件位置就是:
<……>\Arduino15\packages\esp32\hardware\esp32\3.1.1\variants\esp32c3\pins_arduino.h
如果你的arduino安装位置改过,那就到你设置的位置找,一般是上面这个。
定义解释
直接贴出c3板子的代码:
上文省略
static const uint8_t TX = 21;
static const uint8_t RX = 20;
static const uint8_t SDA = 8;//I2C数据
static const uint8_t SCL = 9;//I2C时钟
static const uint8_t SS = 7;//SPI Slave Select或CS
static const uint8_t MOSI = 19;//SPI Out
static const uint8_t MISO = 5;//SPI In
static const uint8_t SCK = 18;//SPI时钟
static const uint8_t A0 = 0;
static const uint8_t A1 = 1;
static const uint8_t A2 = 2;
static const uint8_t A3 = 3;
static const uint8_t A4 = 4;
static const uint8_t A5 = 5;
更改完成后记得保存
更换esp32库版本需要重新改管脚定义,可以自己备份一个。
其他
也是我网上搜罗一圈+自己摸索出来的,有错误请留言指正,我看到了会第一时间修改的~