# DigitalOut [DigitalOut 官方文档](https://os.mbed.com/docs/mbed-os/v6.5/apis/digitalout.html) 使用 DigitalOut 接口可以配置引脚的高低电平。 ## 构造函数 - [DigitalOut](https://os.mbed.com/docs/mbed-os/v6.5/mbed-os-api-doxy/classmbed_1_1_digital_out.html#ab89d7345362cf8a18c535531cd05cbe6) (PinName pin) ,利用引脚编号构造一个 DigitalOut 。 - [DigitalOut](https://os.mbed.com/docs/mbed-os/v6.5/mbed-os-api-doxy/classmbed_1_1_digital_out.html#a4ff3198805136b5bab272a9e80505cfc) (PinName pin, int value),利用引脚编号构造一个 DigitalOut,并指定了引脚初始电平 value 。 ## 读写操作 - void [write](https://os.mbed.com/docs/mbed-os/v6.5/mbed-os-api-doxy/classmbed_1_1_digital_out.html#a25d1931bc29d014446294ab8dc470f2a) (int value) ,设置引脚电平(0或1)。 - int [read](https://os.mbed.com/docs/mbed-os/v6.5/mbed-os-api-doxy/classmbed_1_1_digital_out.html#aaab5dab5b969a87f538242e524431637) (),读引脚电平(0或1)。 为了方便使用,DigitalOut 类还定义了 `=` 操作符的重载,以及对象转化为 int 的隐式类型转换。 - [DigitalOut](https://os.mbed.com/docs/mbed-os/v6.5/mbed-os-api-doxy/classmbed_1_1_digital_out.html) & [operator=](https://os.mbed.com/docs/mbed-os/v6.5/mbed-os-api-doxy/classmbed_1_1_digital_out.html#aa70702790381d867e4975764d4caeacd) (int value) 可以使用 `=` 直接设置引脚电平高低,例如: ```C++ DigitalOut led1(LED1); led1 = 1; //设置引脚高电平 led1 = 0; //设置引脚低电平 ``` - [operator int](https://os.mbed.com/docs/mbed-os/v6.5/mbed-os-api-doxy/classmbed_1_1_digital_out.html#a4f4ea421e40bda08a2deca657f640fea) () 可以直接读取引脚高低电平,例如: ```C++ DigitalOut led1(LED1); int ledValue; ledValue = led1; //ledValue 保存引脚的高低电平(0或1) ``` ## 例程 ```C++ /* * Copyright (c) 2006-2020 Arm Limited and affiliates. * SPDX-License-Identifier: Apache-2.0 */ #include "mbed.h" DigitalOut myled(LED1); int main() { // check that myled object is initialized and connected to a pin if (myled.is_connected()) { printf("myled is initialized and connected!\n\r"); } // Blink LED while (1) { myled = 1; // set LED1 pin to high printf("myled = %d \n\r", (uint8_t)myled); ThisThread::sleep_for(500); myled.write(0); // set LED1 pin to low printf("myled = %d \n\r", myled.read()); ThisThread::sleep_for(500); } } ```