Hi there, I am trying to test out the DS18B20 temperature sensor and I come across this GPIO error when I am trying to test it.
Here is my code:
#include <DallasTemperature.h>
#include <OneWire.h>
// Data wire is conntec to the Arduino digital pin 13
#define ONE_WIRE_BUS 13
// Setup a oneWire instance to communicate with any OneWire devices
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature sensor
DallasTemperature sensors(&oneWire);
void setup(void)
{
// Start serial communication for debugging purposes
Serial.begin(9600);
// Start up the library
sensors.begin();
}
void loop(void){
// Call sensors.requestTemperatures() to issue a global temperature and Requests to all devices on the bus
sensors.requestTemperatures();
Serial.print("Celsius temperature: ");
// Why "byIndex"? You can have more than one IC on the same bus. 0 refers to the first IC on the wire
Serial.print(sensors.getTempCByIndex(0));
Serial.print(" - Fahrenheit temperature: ");
Serial.println(sensors.getTempFByIndex(0));
delay(1000);
}
Here is the error:
In file included from /home/scoober/Arduino/libraries/OneWire/OneWire.cpp:144:
/home/scoober/Arduino/libraries/OneWire/util/OneWire_direct_gpio.h: In function 'uint32_t directRead(uint32_t)':
/home/scoober/Arduino/libraries/OneWire/util/OneWire_direct_gpio.h:134:17: error: 'GPIO' was not declared in this scope; did you mean 'PI'?
134 | return (GPIO.in >> pin) & 0x1;
| ^~~~
| PI
/home/scoober/Arduino/libraries/OneWire/util/OneWire_direct_gpio.h:136:17: error: 'GPIO' was not declared in this scope; did you mean 'PI'?
136 | return (GPIO.in1.val >> (pin - 32)) & 0x1;
| ^~~~
| PI
/home/scoober/Arduino/libraries/OneWire/util/OneWire_direct_gpio.h: In function 'void directWriteLow(uint32_t)':
/home/scoober/Arduino/libraries/OneWire/util/OneWire_direct_gpio.h:149:9: error: 'GPIO' was not declared in this scope; did you mean 'PI'?
149 | GPIO.out_w1tc = ((uint32_t)1 << pin);
| ^~~~
| PI
/home/scoober/Arduino/libraries/OneWire/util/OneWire_direct_gpio.h:151:9: error: 'GPIO' was not declared in this scope; did you mean 'PI'?
151 | GPIO.out1_w1tc.val = ((uint32_t)1 << (pin - 32));
| ^~~~
| PI
/home/scoober/Arduino/libraries/OneWire/util/OneWire_direct_gpio.h: In function 'void directWriteHigh(uint32_t)':
/home/scoober/Arduino/libraries/OneWire/util/OneWire_direct_gpio.h:162:9: error: 'GPIO' was not declared in this scope; did you mean 'PI'?
162 | GPIO.out_w1ts = ((uint32_t)1 << pin);
| ^~~~
| PI
/home/scoober/Arduino/libraries/OneWire/util/OneWire_direct_gpio.h:164:9: error: 'GPIO' was not declared in this scope; did you mean 'PI'?
164 | GPIO.out1_w1ts.val = ((uint32_t)1 << (pin - 32));
| ^~~~
| PI
/home/scoober/Arduino/libraries/OneWire/util/OneWire_direct_gpio.h: In function 'void directModeInput(uint32_t)':
/home/scoober/Arduino/libraries/OneWire/util/OneWire_direct_gpio.h:187:13: error: 'GPIO' was not declared in this scope; did you mean 'PI'?
187 | GPIO.enable_w1tc = ((uint32_t)1 << pin);
| ^~~~
| PI
/home/scoober/Arduino/libraries/OneWire/util/OneWire_direct_gpio.h:189:13: error: 'GPIO' was not declared in this scope; did you mean 'PI'?
189 | GPIO.enable1_w1tc.val = ((uint32_t)1 << (pin - 32));
| ^~~~
| PI
/home/scoober/Arduino/libraries/OneWire/util/OneWire_direct_gpio.h: In function 'void directModeOutput(uint32_t)':
/home/scoober/Arduino/libraries/OneWire/util/OneWire_direct_gpio.h:213:13: error: 'GPIO' was not declared in this scope; did you mean 'PI'?
213 | GPIO.enable_w1ts = ((uint32_t)1 << pin);
| ^~~~
| PI
/home/scoober/Arduino/libraries/OneWire/util/OneWire_direct_gpio.h:215:13: error: 'GPIO' was not declared in this scope; did you mean 'PI'?
215 | GPIO.enable1_w1ts.val = ((uint32_t)1 << (pin - 32));
| ^~~~
| PI
exit status 1
Compilation error: exit status 1
Pretty new to arduino and everything and I've not found anything similar when googling - any help would be greatly appreciated!
Mushlove
