鸿蒙开发板Hi3861_下编译定义D2为输入,上拉电阻——基于code-2.0-CANARY金丝雀windows
#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\n",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\n",value); printf("exec ON ...\n"); osDelay(200); IoTGpioSetOutputVal(HI_IO_NAME_GPIO_9,IOT_GPIO_VALUE0); printf("exec OFF\n"); osDelay(200); IoTGpioSetOutputVal(HI_IO_NAME_GPIO_10,IOT_GPIO_VALUE0); IoTGpioGetInputVal(HI_IO_NAME_GPIO_10,&value); printf("exec gpio10 value ...%d\n",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!\n"); } } SYS_RUN(GpioTask);
欢迎讨论,相互学习。
cdtxw@foxmail.com