DigitalInOut
Use the DigitalInOut interface as a bidirectional digital pin:
- Read the value of a digital pin when set as an
input(). - Write the value when set as an
output().
You can use any of the numbered Arm Mbed pins as a DigitalInOut.
Note: Some boards have a time delay when switching between input and output.
DigitalInOut class reference
| Public Member Functions | |
| DigitalInOut (PinName pin) | |
| Create a DigitalInOut connected to the specified pin. More... | |
| DigitalInOut (PinName pin, PinDirection direction, PinMode mode, int value) | |
| Create a DigitalInOut connected to the specified pin. More... | |
| void | write (int value) |
| Set the output, specified as 0 or 1 (int) More... | |
| int | read () |
| Return the output setting, represented as 0 or 1 (int) More... | |
| void | output () |
| Set as an output. More... | |
| void | input () |
| Set as an input. More... | |
| void | mode (PinMode pull) |
| Set the input pin mode. More... | |
| int | is_connected () |
| Return the output setting, represented as 0 or 1 (int) More... | |
| DigitalInOut & | operator= (int value) |
| A shorthand for write() More... | |
| DigitalInOut & | operator= (DigitalInOut &rhs) |
| A shorthand for write() using the assignment operator which copies the state from the DigitalInOut argument. More... | |
| operator int () | |
| A shorthand for read() More... | |
DigitalInOut hello, world
/*
* Copyright (c) 2006-2020 Arm Limited and affiliates.
* SPDX-License-Identifier: Apache-2.0
*/
#include "mbed.h"
DigitalInOut mypin(LED1);
int main()
{
// check that mypin object is initialized and connected to a pin
if (mypin.is_connected()) {
printf("mypin is initialized and connected!\n\r");
}
// Optional: set mode as PullUp/PullDown/PullNone/OpenDrain
mypin.mode(PullNone);
while (1) {
// write to pin as output
mypin.output();
mypin = !mypin; // toggle output
ThisThread::sleep_for(500);
// read from pin as input
mypin.input();
printf("mypin.read() = %d \n\r", mypin.read());
ThisThread::sleep_for(500);
}
}