9a7946e685
The i2c peripheral will hang if a READ request is issued with a zero data length. The peripheral drops into a continuous timeout interrupt response. The STOP command can not be set out to the I2C bus. The SLAVE device correctly ACK'd the address byte, with READ bit set, it has control of the SDA pin. The ESP32 send out the next SCL HIGH pulse but, since the SLAVE is in READ Mode, and the First bit it is sending happened to be a ZERO, the ESP32 cannot send the STOP. When it releases SDA during the SCL HIGH, the pin does not change state. The pin stays low because the SLAVE is outputing a LOW! The ESP32 drops into a perminent WAIT state waiting for SDA to go HIGH (the STOP). **esp32-hal-i2c.c** * add databuff length checks to `i2cRead()` and `i2cWrite()` |
||
---|---|---|
cores/esp32 | ||
docs | ||
libraries | ||
package | ||
tools | ||
variants | ||
.gitignore | ||
.gitmodules | ||
.travis.yml | ||
appveyor.yml | ||
boards.txt | ||
CMakeLists.txt | ||
component.mk | ||
Kconfig.projbuild | ||
Makefile.projbuild | ||
package.json | ||
platform.txt | ||
programmers.txt | ||
README.md |
Arduino core for ESP32 WiFi chip
Need help or have a question? Join the chat at
Contents
- Development Status
- Installation Instructions
- Decoding Exceptions
- Issue/Bug report template
- ESP32Dev Board PINMAP
Development Status
Most of the framework is implemented. Most noticable is the missing analogWrite. While analogWrite is on it's way, there are a few other options that you can use:
- 16 channels LEDC which is PWM
- 8 channels SigmaDelta which uses SigmaDelta modulation
- 2 channels DAC which gives real analog output
Installation Instructions
- Using Arduino IDE Boards Manager (preferred)
- Using Arduino IDE with the development repository
- Using PlatformIO
- Building with make
- Using as ESP-IDF component
- Using OTAWebUpdater
Decoding exceptions
You can use EspExceptionDecoder to get meaningful call trace.
Issue/Bug report template
Before reporting an issue, make sure you've searched for similar one that was already created. Also make sure to go through all the issues labelled as for reference.
Finally, if you're sure no one else had the issue, follow the ISSUE_TEMPLATE while reporting any issue.
ESP32Dev Board PINMAP
Hint
Sometimes to program ESP32 via serial you must keep GPIO0 LOW during the programming process