#include <stdio.h> #include "ohos_init.h" #include "cmsis_os2.h" #include "iot_gpio.h" #include "hi_io.h" static void GpioTask(void *arg) { (void) arg; IoTGpioInit(HI_IO_NAME_GPIO_9); IoTGpioInit(HI_IO_NAME_GPIO_5); IoTGpioInit(HI_IO_NAME_GPIO_2); IoTGpioSetDir(HI_IO_NAME_GPIO_9,IOT_GPIO_DIR_OUT); IoTGpioSetDir(HI_IO_NAME_GPIO_10,IOT_GPIO_DIR_OUT); IoTGpioSetDir(HI_IO_NAME_GPIO_2,IOT_GPIO_DIR_IN); //D2上拉电阻 hi_io_set_pull(HI_IO_NAME_GPIO_2,HI_IO_PULL_UP); while (1) { /* code */ IotGpioValue value=IOT_GPIO_VALUE1; IoTGpioGetInputVal(HI_IO_NAME_GPIO_2,&value); printf("exec gpio2 value ...%d ",value); osDelay(200); // IoTGpioSetOutputVal(9,1); IoTGpioSetOutputVal(HI_IO_NAME_GPIO_9,IOT_GPIO_VALUE1); IoTGpioSetOutputVal(HI_IO_NAME_GPIO_10,IOT_GPIO_VALUE1); IoTGpioGetInputVal(HI_IO_NAME_GPIO_10,&value); printf("exec gpio10 value ...%d ",value); printf("exec ON ... "); osDelay(200); IoTGpioSetOutputVal(HI_IO_NAME_GPIO_9,IOT_GPIO_VALUE0); printf("exec OFF "); osDelay(200); IoTGpioSetOutputVal(HI_IO_NAME_GPIO_10,IOT_GPIO_VALUE0); IoTGpioGetInputVal(HI_IO_NAME_GPIO_10,&value); printf("exec gpio10 value ...%d ",value); osDelay(200); } } static void GpioEntry(void) { osThreadAttr_t attr={0}; attr.name="GpioTask"; attr.stack_size=4096; attr.priority=osPriorityNormal; if(osThreadNew(GpioTask,NULL,&attr)==NULL) { printf("[GpioEntry] create GpioTask failed! "); } } SYS_RUN(GpioTask);