diff --git a/cores/arduino/wiring_digital.c b/cores/arduino/wiring_digital.c index 5840435c1a..4141772835 100644 --- a/cores/arduino/wiring_digital.c +++ b/cores/arduino/wiring_digital.c @@ -78,17 +78,25 @@ void pinMode(uint32_t ulPin, uint32_t ulMode) void digitalWrite(uint32_t ulPin, uint32_t ulVal) { - digitalWriteFast(digitalPinToPinName(ulPin), ulVal); + PinName p = digitalPinToPinName(ulPin); + if (p != NC) { + digitalWriteFast(p, ulVal); + } } int digitalRead(uint32_t ulPin) { - return digitalReadFast(digitalPinToPinName(ulPin)); + PinName p = digitalPinToPinName(ulPin); + + return (p == NC) ? 0 : digitalReadFast(p); } void digitalToggle(uint32_t ulPin) { - digitalToggleFast(digitalPinToPinName(ulPin)); + PinName p = digitalPinToPinName(ulPin); + if (p != NC) { + digitalToggleFast(digitalPinToPinName(ulPin)); + } } #ifdef __cplusplus
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: