-
Notifications
You must be signed in to change notification settings - Fork 7.7k
Closed
Labels
3.0 migrationIssue relates to migration from 2.X to 3.X versionIssue relates to migration from 2.X to 3.X versionType: QuestionOnly questionOnly question
Description
Board
esp32c6 DEV module
Device Description
下面是我的代码,我使用的esp8266库是2.6版本的,换其他版本也无法编译,
#include "USB.h" //串口通信库
#include "USBCDC.h"
#include <Arduino.h>
#include <IRremoteESP8266.h>
#include <IRrecv.h>
#include <IRutils.h>
// 定义红外接收引脚
const int RECV_PIN = 0; // ESP32的GPIO 0引脚
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup() {
Serial.begin(9600);
Serial.setDebugOutput(true);
irrecv.enableIRIn();
Serial.printf("initial success...");
}
void loop() {
if (irrecv.decode(&results)) {
// Serial.printf(results.value, HEX);
Serial.printf("Received: %x \r\n", results.value);
irrecv.resume();
}
// Serial.printf("USB CDC Data");
// delay(100);
}
Hardware Configuration
没有
Version
v3.2.0
Type
Task
IDE Name
arduino ide
Operating System
window
Flash frequency
80mhz
PSRAM enabled
yes
Upload speed
9600
Description
我想用IRremote红外库,进行红外开发,但是编译上面的程序一直报错,库版本不兼容,我不知道什么版本的库出了问题,您能帮助我把上面的程序编译好吗?
Sketch
#include "USB.h" //串口通信库
#include "USBCDC.h"
#include <Arduino.h>
#include <IRremoteESP8266.h>
#include <IRrecv.h>
#include <IRutils.h>
// 定义红外接收引脚
const int RECV_PIN = 0; // ESP32的GPIO 0引脚
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup() {
Serial.begin(9600);
Serial.setDebugOutput(true);
irrecv.enableIRIn();
Serial.printf("initial success...");
}
void loop() {
if (irrecv.decode(&results)) {
// Serial.printf(results.value, HEX);
Serial.printf("Received: %x \r\n", results.value);
irrecv.resume();
}
// Serial.printf("USB CDC Data");
// delay(100);
}
Debug Message
c:\Users\liu\Documents\Arduino\libraries\IRremoteESP8266\src\IRrecv.cpp: In function 'void gpio_intr()':
c:\Users\liu\Documents\Arduino\libraries\IRremoteESP8266\src\IRrecv.cpp:246:3: error: 'timerAlarmEnable' was not declared in this scope; did you mean 'timerAlarm'?
246 | timerAlarmEnable(timer);
| ^~~~~~~~~~~~~~~~
| timerAlarm
c:\Users\liu\Documents\Arduino\libraries\IRremoteESP8266\src\IRrecv.cpp: In member function 'void IRrecv::enableIRIn(bool)':
c:\Users\liu\Documents\Arduino\libraries\IRremoteESP8266\src\IRrecv.cpp:362:21: error: too many arguments to function 'hw_timer_t* timerBegin(uint32_t)'
362 | timer = timerBegin(_timer_num, 80, true);
| ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
In file included from C:\Users\liu\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.2\cores\esp32/esp32-hal.h:84,
from C:\Users\liu\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.2\cores\esp32/Arduino.h:36,
from c:\Users\liu\Documents\Arduino\libraries\IRremoteESP8266\src\IRrecv.h:10,
from c:\Users\liu\Documents\Arduino\libraries\IRremoteESP8266\src\IRrecv.cpp:6:
C:\Users\liu\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.2\cores\esp32/esp32-hal-timer.h:35:13: note: declared here
35 | hw_timer_t *timerBegin(uint32_t frequency);
| ^~~~~~~~~~
c:\Users\liu\Documents\Arduino\libraries\IRremoteESP8266\src\IRrecv.cpp:371:3: error: 'timerAlarmWrite' was not declared in this scope; did you mean 'timerWrite'?
371 | timerAlarmWrite(timer, MS_TO_USEC(params.timeout), ONCE);
| ^~~~~~~~~~~~~~~
| timerWrite
c:\Users\liu\Documents\Arduino\libraries\IRremoteESP8266\src\IRrecv.cpp:375:23: error: too many arguments to function 'void timerAttachInterrupt(hw_timer_t*, void (*)())'
375 | timerAttachInterrupt(timer, &read_timeout, false);
| ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\Users\liu\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.2\cores\esp32/esp32-hal-timer.h:50:6: note: declared here
50 | void timerAttachInterrupt(hw_timer_t *timer, void (*userFunc)(void));
| ^~~~~~~~~~~~~~~~~~~~
c:\Users\liu\Documents\Arduino\libraries\IRremoteESP8266\src\IRrecv.cpp: In member function 'void IRrecv::disableIRIn()':
c:\Users\liu\Documents\Arduino\libraries\IRremoteESP8266\src\IRrecv.cpp:401:3: error: 'timerAlarmDisable' was not declared in this scope
401 | timerAlarmDisable(timer);
| ^~~~~~~~~~~~~~~~~
c:\Users\liu\Documents\Arduino\libraries\IRremoteESP8266\src\IRrecv.cpp: In member function 'void IRrecv::pause()':
c:\Users\liu\Documents\Arduino\libraries\IRremoteESP8266\src\IRrecv.cpp:416:3: error: 'gpio_intr_disable' was not declared in this scope; did you mean 'esp_intr_disable'?
416 | gpio_intr_disable((gpio_num_t)params.recvpin);
| ^~~~~~~~~~~~~~~~~
| esp_intr_disable
c:\Users\liu\Documents\Arduino\libraries\IRremoteESP8266\src\IRrecv.cpp: In member function 'void IRrecv::resume()':
c:\Users\liu\Documents\Arduino\libraries\IRremoteESP8266\src\IRrecv.cpp:429:3: error: 'timerAlarmDisable' was not declared in this scope
429 | timerAlarmDisable(timer);
| ^~~~~~~~~~~~~~~~~
c:\Users\liu\Documents\Arduino\libraries\IRremoteESP8266\src\IRrecv.cpp:430:3: error: 'gpio_intr_enable' was not declared in this scope; did you mean 'esp_intr_enable'?
430 | gpio_intr_enable((gpio_num_t)params.recvpin);
| ^~~~~~~~~~~~~~~~
| esp_intr_enable
exit status 1
Compilation error: exit status 1
Other Steps to Reproduce
没有了
I have checked existing issues, online documentation and the Troubleshooting Guide
- I confirm I have checked existing issues, online documentation and Troubleshooting guide.
Metadata
Metadata
Assignees
Labels
3.0 migrationIssue relates to migration from 2.X to 3.X versionIssue relates to migration from 2.X to 3.X versionType: QuestionOnly questionOnly question