• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

ESP8266 конфликтует с OneWire

geolog

New member
Простая заготовка. Код исключил до выяснения глюка. Ниже кода ошибки компиляции. Я так понял в ESP8266WiFi.h есть своя OneWire и подключение отдельной конфликтует с ней. Как использовать OneWire в таком случае?
Код:
#include <ESP8266WiFi.h>
#include <OneWire.h>
#include <DallasTemperature.h>
void setup() {
  // put your setup code here, to run once:

}

void loop() {
  // put your main code here, to run repeatedly:

}
C:\Users\CGL\Documents\Arduino\libraries\OneWire/OneWire.h:108:2: error: #error "Please define I/O register types here"
#error "Please define I/O register types here"
^
Несколько библиотек найдено для "ESP8266WiFi.h"
Используется: C:\Users\CGL\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.0\libraries\ESP8266WiFi
Несколько библиотек найдено для "OneWire.h"
Используется: C:\Users\CGL\Documents\Arduino\libraries\OneWire
Несколько библиотек найдено для "DallasTemperature.h"
Используется: C:\Users\CGL\Documents\Arduino\libraries\DallasTemperature
exit status 1
Ошибка компиляции для платы Generic ESP8266 Module.
 

Алексей.

Active member
Я так понял в ESP8266WiFi.h есть своя OneWire
Как это своя? При попытке собрать ваш пример на sdk 2.6.0 получаю
Код:
/home/alex/arduino-1.8.10/arduino-builder -dump-prefs -logger=machine -hardware /home/alex/arduino-1.8.10/hardware -hardware /home/alex/Arduino/hardware -tools /home/alex/arduino-1.8.10/tools-builder -tools /home/alex/arduino-1.8.10/hardware/tools/avr -built-in-libraries /home/alex/arduino-1.8.10/libraries -libraries /home/alex/Arduino/libraries -fqbn=esp8266com:esp8266:nodemcuv2:xtal=80,vt=flash,exception=disabled,ssl=all,eesz=4M,ip=lm2f,dbg=Disabled,lvl=None____,wipe=none,baud=115200 -ide-version=10810 -build-path /tmp/arduino_build_632614 -warnings=all -build-cache /tmp/arduino_cache_988111 -prefs=build.warn_data_percentage=75 -verbose /home/alex/Arduino/sketch_nov10a/sketch_nov10a.ino
/home/alex/arduino-1.8.10/arduino-builder -compile -logger=machine -hardware /home/alex/arduino-1.8.10/hardware -hardware /home/alex/Arduino/hardware -tools /home/alex/arduino-1.8.10/tools-builder -tools /home/alex/arduino-1.8.10/hardware/tools/avr -built-in-libraries /home/alex/arduino-1.8.10/libraries -libraries /home/alex/Arduino/libraries -fqbn=esp8266com:esp8266:nodemcuv2:xtal=80,vt=flash,exception=disabled,ssl=all,eesz=4M,ip=lm2f,dbg=Disabled,lvl=None____,wipe=none,baud=115200 -ide-version=10810 -build-path /tmp/arduino_build_632614 -warnings=all -build-cache /tmp/arduino_cache_988111 -prefs=build.warn_data_percentage=75 -verbose /home/alex/Arduino/sketch_nov10a/sketch_nov10a.ino
Using board 'nodemcuv2' from platform in folder: /home/alex/Arduino/hardware/esp8266com/esp8266
Using core 'esp8266' from platform in folder: /home/alex/Arduino/hardware/esp8266com/esp8266
/home/alex/Arduino/hardware/esp8266com/esp8266/tools/python3/python3 /home/alex/Arduino/hardware/esp8266com/esp8266/tools/makecorever.py --build_path /tmp/arduino_build_632614 --platform_path /home/alex/Arduino/hardware/esp8266com/esp8266 --version unix-2.6.0
Detecting libraries used...
/home/alex/Arduino/hardware/esp8266com/esp8266/tools/xtensa-lx106-elf/bin/xtensa-lx106-elf-g++ -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ -I/home/alex/Arduino/hardware/esp8266com/esp8266/tools/sdk/include -I/home/alex/Arduino/hardware/esp8266com/esp8266/tools/sdk/lwip2/include -I/home/alex/Arduino/hardware/esp8266com/esp8266/tools/sdk/libc/xtensa-lx106-elf/include -I/tmp/arduino_build_632614/core -c -w -Os -g -mlongcalls -mtext-section-literals -fno-rtti -falign-functions=4 -std=gnu++11 -ffunction-sections -fdata-sections -fno-exceptions -DNEW_OOM_ABORT -w -x c++ -E -CC -DNONOSDK22x_191024=1 -DF_CPU=80000000L -DLWIP_OPEN_SRC -DTCP_MSS=536 -DLWIP_FEATURES=1 -DLWIP_IPV6=0 -DARDUINO=10810 -DARDUINO_ESP8266_NODEMCU -DARDUINO_ARCH_ESP8266 "-DARDUINO_BOARD=\"ESP8266_NODEMCU\"" -DFLASHMODE_DIO -DESP8266 -I/home/alex/Arduino/hardware/esp8266com/esp8266/cores/esp8266 -I/home/alex/Arduino/hardware/esp8266com/esp8266/variants/nodemcu /tmp/arduino_build_632614/sketch/sketch_nov10a.ino.cpp -o /dev/null
Alternatives for ESP8266WiFi.h: [ESP8266WiFi@1.0]
ResolveLibrary(ESP8266WiFi.h)
  -> candidates: [ESP8266WiFi@1.0]
/home/alex/Arduino/hardware/esp8266com/esp8266/tools/xtensa-lx106-elf/bin/xtensa-lx106-elf-g++ -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ -I/home/alex/Arduino/hardware/esp8266com/esp8266/tools/sdk/include -I/home/alex/Arduino/hardware/esp8266com/esp8266/tools/sdk/lwip2/include -I/home/alex/Arduino/hardware/esp8266com/esp8266/tools/sdk/libc/xtensa-lx106-elf/include -I/tmp/arduino_build_632614/core -c -w -Os -g -mlongcalls -mtext-section-literals -fno-rtti -falign-functions=4 -std=gnu++11 -ffunction-sections -fdata-sections -fno-exceptions -DNEW_OOM_ABORT -w -x c++ -E -CC -DNONOSDK22x_191024=1 -DF_CPU=80000000L -DLWIP_OPEN_SRC -DTCP_MSS=536 -DLWIP_FEATURES=1 -DLWIP_IPV6=0 -DARDUINO=10810 -DARDUINO_ESP8266_NODEMCU -DARDUINO_ARCH_ESP8266 "-DARDUINO_BOARD=\"ESP8266_NODEMCU\"" -DFLASHMODE_DIO -DESP8266 -I/home/alex/Arduino/hardware/esp8266com/esp8266/cores/esp8266 -I/home/alex/Arduino/hardware/esp8266com/esp8266/variants/nodemcu -I/home/alex/Arduino/hardware/esp8266com/esp8266/libraries/ESP8266WiFi/src /tmp/arduino_build_632614/sketch/sketch_nov10a.ino.cpp -o /dev/null
Alternatives for OneWire.h: []
ResolveLibrary(OneWire.h)
sketch_nov10a:2:21: error: OneWire.h: No such file or directory  -> candidates: []

 #include <OneWire.h>
Несколько библиотек найдено для "ESP8266WiFi.h"
                     ^
compilation terminated.
 Используется: /home/alex/Arduino/hardware/esp8266com/esp8266/libraries/ESP8266WiFi
Используем библиотеку ESP8266WiFi версии 1.0 из папки: /home/alex/Arduino/hardware/esp8266com/esp8266/libraries/ESP8266WiFi
exit status 1
OneWire.h: No such file or directory
Для sdk 2.6.0 OneWire относится к другим библиотекам (не включены в IDE)
 

esp340

Active member
у меня этот пример нормально компилируется хоть и тоже пишет "Несколько библиотек найдено для ... ". Да и вообще заметил что подобная хрень появилась после недавних обнов IDE с библиотеками. С чем это связано непонятно. Специально искал дубликаты библиотек - нигде ничего нет. Один из ранее рабочих скетчей отказался компилироваться. Что самое интересное просто создал новый и копированием перенес туда строки из старого - все заработало.
 

nikolz

Well-known member
Простая заготовка. Код исключил до выяснения глюка. Ниже кода ошибки компиляции. Я так понял в ESP8266WiFi.h есть своя OneWire и подключение отдельной конфликтует с ней. Как использовать OneWire в таком случае?
Код:
#include <ESP8266WiFi.h>
#include <OneWire.h>
#include <DallasTemperature.h>
void setup() {
  // put your setup code here, to run once:

}

void loop() {
  // put your main code here, to run repeatedly:

}
C:\Users\CGL\Documents\Arduino\libraries\OneWire/OneWire.h:108:2: error: #error "Please define I/O register types here"
#error "Please define I/O register types here"
^
Несколько библиотек найдено для "ESP8266WiFi.h"
Используется: C:\Users\CGL\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.0\libraries\ESP8266WiFi
Несколько библиотек найдено для "OneWire.h"
Используется: C:\Users\CGL\Documents\Arduino\libraries\OneWire
Несколько библиотек найдено для "DallasTemperature.h"
Используется: C:\Users\CGL\Documents\Arduino\libraries\DallasTemperature
exit status 1
Ошибка компиляции для платы Generic ESP8266 Module.
#error "Please define I/O register types here"
просит Вас определите пины к которым подключаете,
У компилятора нет глаз, чтобы вместо вас это увидеть.
А на форуме нет телепатов, чтобы вам внушить как надо
А вам очевидно лень читать документацию и сообщения компилятора.
 

geolog

New member
#error "Please define I/O register types here"
просит Вас определите пины к которым подключаете,
У компилятора нет глаз, чтобы вместо вас это увидеть.
А на форуме нет телепатов, чтобы вам внушить как надо
А вам очевидно лень читать документацию и сообщения компилятора.
:) Я еще ничего в этой заготовке не подключаю. Только библиотеки подгрузил и меня это кстати тоже удивило, какие регистры хочет OneWire... C каких это пор подгрузка библиотек обязывает прописывать регистры или пины?
 

geolog

New member
#error "Please define I/O register types here"
просит Вас определите пины к которым подключаете,
У компилятора нет глаз, чтобы вместо вас это увидеть.
А на форуме нет телепатов, чтобы вам внушить как надо
А вам очевидно лень читать документацию и сообщения компилятора.
:) Я еще ничего в этой заготовке не подключаю. Только библиотеки подгрузил и меня это кстати тоже удивило, какие регистры хочет OneWire... C каких это пор подгрузка библиотек обязывает прописывать регистры или пины? да думаю просто кривая библиотека или IDE.
 
Сверху Снизу