espressif / arduino-esp32

Arduino core for the ESP32
GNU Lesser General Public License v2.1
13.61k stars 7.41k forks source link

class SPIClass' has no member named 'usingInterrupt' #8168

Open wzqvip opened 1 year ago

wzqvip commented 1 year ago

Board

ESP32-Pico-D4, ESP32-C3

Device Description

Using an ADS chip and ESP32, SPI

Hardware Configuration

ESP32 VSPI (Also tried on HSPI)

Version

latest master (checkout manually)

IDE Name

Platform IO

Operating System

Windows11

Flash frequency

(40M ?)

PSRAM enabled

yes

Upload speed

115200

Description

: 'class SPIClass' has no member named 'usingInterrupt' SPI.usingInterrupt(digitalPinToInterrupt(drdyPin)); // Disable the interrupt when there is a SPI transaction in course ^~~~~~`

Sketch

// DRDY (data ready) pin configuration
    pinMode(drdyPin, INPUT);
    // DRDY pin used to interrupt is attached to the Arduino
    attachInterrupt(digitalPinToInterrupt(drdyPin), _ISR_ADS_privateReadDataFromChip_, FALLING);
    SPI.usingInterrupt(digitalPinToInterrupt(drdyPin)); // Disable the interrupt when there is a SPI transaction in course

Debug Message

src/ads129xDriver.cpp: In member function 'void ADS129xSensor::begin()':
src/ads129xDriver.cpp:70:9: error: 'class SPIClass' has no member named 'usingInterrupt'
     SPI.usingInterrupt(digitalPinToInterrupt(drdyPin)); // Disable the interrupt when there is a SPI transaction in course
         ^~~~~~~~~~~~~~

Other Steps to Reproduce

Tried on ESP32-C3, ESP32-PICO-D4, find little info about it. ESP-IF may have this interrupt, and Arduino. But no info on ESP32-Arduino.

May related issue: Use attachInterrupt Board

I have checked existing issues, online documentation and the Troubleshooting Guide

SuGlider commented 1 year ago

It sounds like this Arduino sketch uses some external library that uses SPI.usingInterrupt(digitalPinToInterrupt(drdyPin)); ESP32 chips may not need it... you may just comment those lines out and ignore it.