читайте документацию:При попытке использования выводов №11 и12 для I2C возникает перезагрузка модуля, хотя UART двухпроводный и эти ножки нигде не задействованы (Nodemcu 1.5.1).
Код:i2c.setup(0, 11,12, i2c.SLOW)
А как понять В вопросеGPIO9 и GPIO10 а в посте выводов №11 и12А при чем тут железный I2C от ESP? Cогласно документации на NodeMCU "pinSDA 1~12, IO index pinSCL 1~12, IO index" можно использовать любые ножки в диапазоне 1-12 т.е. софтовый I2C. И пример там кстати на GPIO 4,5. Просто как обычно половина модулей луа ни хрена не работают. Реально выполняется лишь часть функции на GPIO9 и GPIO10 поскольку они сидят на ИС памяти то после переключения режима DIO высвобождаются не полностью -вход WP должен быть подтянут к питанию т.е. этот GPIO может быть лишь входом. Второй GPIO висит на HOLD что позволяет его включать как выход или PWM.
тото я никак не врублюсь что это Вы изобрели.Да очень просто см. документацию NodeMCU там идет перенумерация выводов GPIO9 =11 и GPIO10=12 (таблица на рис.). Только не спрашивайте почему так, это NodeMCU, китайцам так удобнее наверное, ну ли чтоб враги не догадались.
Спасибо,понял.Еще раз для Вас, для использования пинов GPIO9 &10 нужно переключить флешку в режим обычного трехпроводного последовательного интерфейса. Это режим у китайцев именуется DIO а обычный когда все 5 ножек это QIO. Это не я придумал так написано в документации см. тут . Но там ничего не написано об косяке GPIO9 &10 (это уже видно в исходниках и схеме ). Как я уже объяснил в виду того что WP нельзя вешать на ноль то можно использовать эти выводы с ограниченным функционалом (см.пост выше) -конечно если вы планируете использовать флешку в работе а не только при загрузке кода один раз. Но даже если использовать только бут, при настройке I2C происходит сброс системы с интервалом 3-5сек. Можно конечно и это понять но зачем убивать время на чужой код? Таких ляпов в NodeMCU достаточно например rtc_time_enter_deep_sleep_us() при выходе не выполняет инцилизацию полностью , в результате зависаем в полусброшенном состоянии, хотя старая версия через node.dsleep делает сброс корректно.
Но согласитесь, что ругаться на китайцев на русскоязычном сайте,Нет уж спасибо, лучше чтоб на каждую функцию Lua было более детальное описание "зубов" в заду тогда и дареный конь в радость. ( Последний раз когда я исправлял код был CMSIS от Silicon Labs как раз под такой же ARM Cortex M3. В результате мне пришлось переписать весь уровень абстракции- HAL из 30 файлов удалось сократить до 3-х и потерять месяц, но это было терпимо т.к. среда - IAR имеет симулятор ядра и с нормальным JTAG отладчиком. А тут Luna ! и UART-не удивительно, что это так работает...)
Я, некоторое время назад, сделал перевод на русский почти всей документации, но народ не поддержал, больше никто участие в переводе не принял. Одному человеку все это поддерживать и обновлять трудновато, поэтому проект благополучно умер.Если бы в описании к каждой функции указывать...
Вы конструктивную критику для кого пишите? Очевидно, что для китайцев.вы не путайте конструктивную критику и ругань. Lua на ESP это инструмент программирования для чайников и китайцами он приподноситься именно так и это очень даже хорошо, зачем разбираться в коде когда пару макросов сделают все что надо. Если бы в описании к каждой функции указывать соопутсвующие "грабли" (например тут -"This driver shares hardware resources with other modules. Thus you can't operate it in parallel to" весьма честно сказано что при использовании модуля pcm остальные три модуля встанут) то пользователю будет проще понять что он может реально использовать, а что нет в своем проекте. Такую же Important инфу можно приделать к каждому модулю, к примеру SPI(0) который в принципе не написан т.к. нет OverlapSPI в коде исходника. Или те же extra pins GPIO9&10... Вот это бы сильно упростило жизнь таким ламерам как я, которые леняться ставить IDE и хотят быстренько накидать скрипт и ву аля!.
Мое мнение следующее.Я думаю что 90 % людей пробуют NodeMCU и бросают его так и не поняв в чем проблема. Поэтому возможно то что я пишу им будет полезно. Китайцам я писать не стану т.к. " если хочешь сделать хорошо - сделай это сам."
Поэтому у меня к Вам как специалисту пару вопросов :
1) Есть IDE Eclipse Luna SR2 под Анройд приложения использую. Я поставил пак SDK NonOS 2.0 +AddonDevKit Примеры от SDK компилятся. А вот исходники NodeMCU не собирает как надо, вроде SDK вверх не проблема, вероятно проблема в инсталяции через Import Git?
2) Не вижу отладчика в среде Eclipse для ESP8266, хотя под студию есть OpenOCD на WDT построена, ну очень не хотелось бы printf() использовать как основной инструмент.