ESP32资料搜集

WEMOS LOLIN32簡介  https://swf.com.tw/?p=1331&cpage=1
 
 
 
arduino-esp32fs-plugin
 
ESP32-CAM摄像头开发板
https://www.cyqsd.cn/9296.html
 
ESP32多任务
https://luojia.me/2020/07/25/esp32多任务笔记/
 
ESP32 Arduino: Passing a variable as argument of a FreeRTOS task
xTaskCreatePinnedToCore 传递变量
https://techtutorialsx.com/2017/05/07/esp32-arduino-passing-a-variable-as-argument-of-a-freertos-task/
 
  仅输入的管脚 GPIO34到39是GPIs–仅输入的管脚。这些引脚没有内部上拉或下拉电阻。它们不能用作输出,因此只能将这些管脚用作输入:
  GPIO34 -GPIO39
 
  集成在ESP-WROOM-32上的SPI闪存
  GPIO 6到GPIO 11在一些ESP32开发板中是公开的。但是,这些引脚连接到ESP-WROOM-32芯片上的集成SPI闪存,不建议用于其他用途。所以,不要在项目中使用这些管脚:
  GPIO 6(SCK/CLK) GPIO 7(SDO/SD0) GPIO 8(SDI/SD1) GPIO 9(SHD/SD2) GPIO 10(SWP/SD3)  GPIO 11(CSC/CMD)
 
  电容式触摸GPIO
  ESP32有10个内部电容式触摸传感器。它们能感应到任何带电物质的变化,比如人类皮肤。因此,他们可以检测到当用手指触摸gpio时引起的变化。这些引脚可以很容易地集成到电容垫,并取代机械按钮。电容式触针也可以用来唤醒ESP32的深度睡眠。
  这些内部触摸传感器连接到这些GPIO:
  T0 (GPIO 4) T1 (GPIO 0) T2 (GPIO 2) T3 (GPIO 15)  T4 (GPIO 13)  T5 (GPIO 12)  T6 (GPIO 14)  T7 (GPIO 27)  T8 (GPIO 33)  T9 (GPIO 32)
 
  模数转换器(ADC)
  ESP32有18 x 12位ADC输入通道(而ESP8266只有1 x 10位ADC)。这些是可用作ADC和相应通道的GPIO:
  ADC1_CH0 (GPIO 36)  ADC1_CH1 (GPIO 37)  ADC1_CH2 (GPIO 38)  ADC1_CH3 (GPIO 39)  ADC1_CH4 (GPIO 32)  ADC1_CH5 (GPIO 33)  ADC1_CH6 (GPIO 34)  ADC1_CH7 (GPIO 35)
  ADC2_CH0 (GPIO 4)   ADC2_CH1 (GPIO 0)   ADC2_CH2 (GPIO 2)   ADC2_CH3 (GPIO 15)  ADC2_CH4 (GPIO 13)  ADC2_CH5 (GPIO 12)  ADC2_CH6 (GPIO 14)  ADC2_CH7 (GPIO 27)  ADC2_CH8 (GPIO 25)  ADC2_CH9 (GPIO 26)
 
  ADC输入通道具有12位分辨率。这意味着您可以获得0到4095之间的模拟读数,其中0对应于0V,4095对应于3.3V。您还可以在代码上设置通道的分辨率以及ADC范围。
  ESP32 ADC引脚没有线性行为。您可能无法区分0和0.1V,或3.2和3.3V。
 
  注意:使用Wi-Fi时不能使用ADC2管脚。因此,如果您使用Wi-Fi,并且无法从ADC2 GPIO获取值,则可以考虑改用ADC1 GPIO,这应该可以解决您的问题。
 
  数模转换器(DAC)
  ESP32上有2 x 8位DAC通道,用于将数字信号转换为模拟电压信号输出。这些是DAC通道:DAC1 (GPIO25)  DAC2 (GPIO26)
 
  RTC GPIOs
  ESP32支持RTC GPIO。当ESP32处于深度睡眠状态时,可以使用路由到RTC低功耗子系统的GPIO。这些RTC gpio可用于在超低功耗(ULP)协处理器运行时将ESP32从深度睡眠中唤醒。以下GPIO可以用作外部唤醒源。
  RTC_GPIO0 (GPIO36)  RTC_GPIO3 (GPIO39)  RTC_GPIO4 (GPIO34)  RTC_GPIO5 (GPIO35)  RTC_GPIO6 (GPIO25)  RTC_GPIO7 (GPIO26)  RTC_GPIO8 (GPIO33)  RTC_GPIO9 (GPIO32)
  RTC_GPIO10 (GPIO4)  RTC_GPIO11 (GPIO0)  RTC_GPIO12 (GPIO2)  RTC_GPIO13 (GPIO15) RTC_GPIO14 (GPIO13) RTC_GPIO15 (GPIO12) RTC_GPIO16 (GPIO14) RTC_GPIO17 (GPIO27)
 
  脉冲宽度调制
  ESP32 LED PWM控制器有16个独立通道,可以配置为生成具有不同特性的PWM信号。所有可以作为输出的管脚都可以用作PWM管脚(GPIOs 34到39不能产生PWM)。
  要设置脉冲宽度调制信号,需要在代码中定义这些参数: 信号频率; 占空比;  脉宽调制通道; 要输出信号的GPIO。
 
  I2C
  ESP32有两个I2C通道,任何管脚都可以设置为SDA或SCL。将ESP32与Arduino IDE一起使用时,默认I2C引脚为: GPIO 21(SDA)  GPIO 22(SCL)
  如果要使用其他管脚,在使用导线库时,只需调用:
  Wire.begin(SDA, SCL);
 
  默认情况下,SPI的pin映射为
  SPI   MOSI    MISO    CLK   CS
  VSPI  23      19      18    5
  HSPI  13      12      14    15
 
  中断  所有GPIO都可以配置为中断。
 
  Strapping pins
  ESP32芯片具有以下Strapping pins:GPIO 0  GPIO 2  GPIO 4  GPIO 5(启动期间必须为高)  GPIO 12(启动期间必须低)  GPIO 15(启动期间必须为高)
 
  Pins HIGH at Boot
  一些GPIO在启动或重置时将其状态更改为高或输出PWM信号。这意味着,如果输出连接到这些gpio,则在ESP32重置或引导时可能会得到意外的结果。
  GPIO 1    GPIO 3    GPIO 5  GPIO 14   GPIO 15
  GPIO 6 to GPIO 11 (connected to the ESP32 integrated SPI flash memory – not recommended to use).
 
  启用(EN)是3.3V调节器的启用引脚。它被拉起来了,所以接地使3.3V调节器失效。例如,这意味着您可以使用连接到按钮的该管脚来重新启动ESP32。
 
  GPIO电流消耗  根据ESP32数据表中的“推荐操作条件”部分,每个GPIO的绝对最大电流为40毫安。
 
  ESP32内置霍尔效应传感器,可检测周围磁场的变化。霍尔传感器可将磁场转为电压,送入放大器内,而后通过管脚 SENSOR_VP GPIO36 和管脚 SENSOR_VN GPIO39 输出
 
  可输入可输出  GPIO2  GPIO4  GPIO5 GPIO13-GPIO19 GPIO21-GPIO23 GPIO25-GPIO27 GPIO32 GPIO33
  仅用作输入 GPIO34-GPIO39
 
 
 
#ifndef Pins_Arduino_h
#define Pins_Arduino_h
 
#include
 
#define EXTERNAL_NUM_INTERRUPTS 16
#define NUM_DIGITAL_PINS        40
#define NUM_ANALOG_INPUTS       16
 
#define analogInputToDigitalPin(p)  (((p)<20)?(esp32_adc2gpio[(p)]):-1)
#define digitalPinToInterrupt(p)    (((p)<40)?(p):-1)
#define digitalPinHasPWM(p)         (p < 34)
 
static const uint8_t TX = 1;
static const uint8_t RX = 3;
 
static const uint8_t LED_BUILTIN = 22;
#define BUILTIN_LED  LED_BUILTIN // backward compatibility
 
static const uint8_t SDA = 19;
static const uint8_t SCL = 23;
 
static const uint8_t SS    = 5;
static const uint8_t MOSI  = 23;
static const uint8_t MISO  = 19;
static const uint8_t SCK   = 18;
 
static const uint8_t A0 = 36;
static const uint8_t A3 = 39;
static const uint8_t A4 = 32;
static const uint8_t A5 = 33;
static const uint8_t A6 = 34;
static const uint8_t A7 = 35;
static const uint8_t A10 = 4;
static const uint8_t A11 = 0;
static const uint8_t A12 = 2;
static const uint8_t A13 = 15;
static const uint8_t A14 = 13;
static const uint8_t A15 = 12;
static const uint8_t A16 = 14;
static const uint8_t A17 = 27;
static const uint8_t A18 = 25;
static const uint8_t A19 = 26;
 
static const uint8_t T0 = 4;
static const uint8_t T1 = 0;
static const uint8_t T2 = 2;
static const uint8_t T3 = 15;
static const uint8_t T4 = 13;
static const uint8_t T5 = 12;
static const uint8_t T6 = 14;
static const uint8_t T7 = 27;
static const uint8_t T8 = 33;
static const uint8_t T9 = 32;
 
static const uint8_t DAC1 = 25;
static const uint8_t DAC2 = 26;
 
#endif
 
 
 
posted @ 2022-04-25 08:53  慕炎  阅读(570)  评论(0)    收藏  举报