鸿蒙开发板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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)