起こったこと
I2Cで使用したPINは、GPIO12,13
プルアップ抵抗をしていなかったので2.2Kのプルアップ抵抗を入れるとエラー。
シリアルモニターにこんな表示が
rst:0x10 (RTCWDT_RTC_RESET),boot:0x33 (SPI_FAST_FLASH_BOOT)
flash read err, 1000
ets_main.c 371
ets Jun 8 2016 00:22:57
エラー内容については後で。。。
原因
原因はPULLDOWN初期値のGPIOをPULLUPしたこと
ESP32のGPIOには初期値が、GPIOによって違う。
GPIOの初期値についてはLang-shipで詳しく解説してくれています(マジ、助かる)
https://lang-ship.com/blog/work/esp32-gpio/
大体はPULLUP or INPUTなのだが、所々にPULLDOWNがある。
GPIO13は初期値がPULLDOWNなのでそこでエラーがおこった。
対策
初期値がPULLUP or INPUTのGPIOに変更するといいと思います。
エラー内容
エラー内容をGOOGLEで検索をかけると、前例が出てきました。
どうも不安定な電源が原因のようです。
勝手な憶測ですが、PULLDOWN初期値のGPIOをPULLUPしてしまうと、短絡した状態になるようで電源が不安定になるのかなと思います。