鸿蒙硬件HI3861点灯
鸿蒙硬件HI3861点灯
鸿蒙其他教程请看https://blog.csdn.net/qq_33259323/category_10520249.html
创建文件
BUILD.gn
static_library("mmled") {sources = ["mmled.c"]include_dirs = ["//domains/iot/link/ledlib","//base/iot_hardware/interfaces/kits/wifiiot_lite","//kernel/liteos_m/components/cmsis/2.0",]
}
mmled.c
#include "mmled.h"
#include <stdio.h>
#include <unistd.h>
#include "wifiiot_gpio.h"
#include "wifiiot_gpio_ex.h"
#include "cmsis_os2.h"// LED状态
enum LedState {LED_ON = 0,LED_OFF,LED_SPARK,
};enum LedState g_ledState = LED_SPARK;// LED初始化
void Led_Init(void){GpioInit();IoSetFunc(WIFI_IOT_IO_NAME_GPIO_9, WIFI_IOT_IO_FUNC_GPIO_9_GPIO);GpioSetDir(WIFI_IOT_IO_NAME_GPIO_9, WIFI_IOT_GPIO_DIR_OUT);
}static void *LedBTask(const char *arg){(void)arg;while (1) {switch (g_ledState) {case LED_ON:GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_9, 1);usleep(LED_INTERVAL_TIME_US);break;case LED_OFF:GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_9, 0);usleep(LED_INTERVAL_TIME_US);break;case LED_SPARK:GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_9, 0);usleep(LED_INTERVAL_TIME_US);GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_9, 1);usleep(LED_INTERVAL_TIME_US);break;default:usleep(LED_INTERVAL_TIME_US);break;}}return NULL;
}// LED模块初始化线程
void Start_Led_Thread(void){osThreadAttr_t ledattr;ledattr.name = "LedTask";ledattr.attr_bits = 0U;ledattr.cb_mem = NULL;ledattr.cb_size = 0U;ledattr.stack_mem = NULL;ledattr.stack_size = LED_TASK_STACK_SIZE;ledattr.priority = LED_TASK_PRIO;if (osThreadNew((osThreadFunc_t)LedBTask, NULL, &ledattr) == NULL) {printf("[LedExample] Falied to create LedTask!\n");}
}
mmled.c
#ifndef MMLED_H
#define MMLED_H#define LED_INTERVAL_TIME_US 3000000
#define LED_TASK_STACK_SIZE 512
#define LED_TASK_PRIO 25/*** LED初始化*/
void Led_Init(void);void Start_Led_Thread(void);//static void *LedBTask(const char *arg);#endif
这些弄完之后需要修改code-1.0\applications\sample\wifi-iot\app\BUILD.gn把刚才的mmled添加进去进行
import("//build/lite/config/component/lite_component.gni")lite_component("app") {features = ["my_first_app:myapp","//domains/iot/link/ledlib:mmled" ## 需要把mmled添加进去]
}
在\code-1.0\applications\sample\wifi-iot\app\my_first_app\BUILD.gn
static_library("myapp") {sources = ["hello_world.c"]include_dirs = ["//utils/native/lite/include","//domains/iot/link/ledlib", ## 添加ledlib]
}
在\code-1.0\applications\sample\wifi-iot\app\my_first_app\hello_world.c
#include <stdio.h>
#include "ohos_init.h"
#include "ohos_types.h"
#include "mmled.h"void HelloWorld(void)
{printf("[DEMO] Hello world.\n");Led_Init();Start_Led_Thread();
}SYS_RUN(HelloWorld);
然后就OK了
如果在过程中遇到什么问题可以来联系我B站
https://space.bilibili.com/309103931
鸿蒙硬件HI3861点灯相关推荐
- 鸿蒙硬件HI3861开发环境搭建-串口2测试
鸿蒙硬件HI3861开发环境搭建-串口2测试 鸿蒙硬件HI3861开发环境搭建-串口2测试 - 哔哩哔哩 鸿蒙其他教程请看https://blog.csdn.net/qq_33259323/categ ...
- 鸿蒙硬件HI3861开发环境搭建
鸿蒙HI3861开发环境搭建 最新的环境搭建教程请看:https://blog.csdn.net/qq_33259323/article/details/117854579 鸿蒙其他教程请看https ...
- 鸿蒙硬件开发:Hi3861开发环境搭建及Windows下编译下载程序
Windows开发环境准备 可参考官方文档Windows开发环境准备进行配置. 安装VS Code https://code.visualstudio.com/Download 安装Python ht ...
- 鸿蒙硬件HI3861-OLED扫雷版本1
鸿蒙硬件HI3861-OLED扫雷版本 使用HI3861实现在OLED1602上面实现扫雷 效果请看:https://www.bilibili.com/video/BV1U54y1r78j/ 1.OL ...
- 鸿蒙硬件HI3861-MQTT
警告:MQTT移植不匹配,此文章作废,后续有鸿蒙高版本MQTT移植 鸿蒙硬件HI3861-MQTT 鸿蒙其他教程请看https://blog.csdn.net/qq_33259323/category ...
- 鸿蒙硬件HI3861-连接WIFI
鸿蒙硬件HI3861-连接WIFI 鸿蒙其他教程请看https://blog.csdn.net/qq_33259323/category_10520249.html 目录是这样的 BUILD.gn s ...
- 鸿蒙OS Hi3861的芯片实际开发中遇到的问题
鸿蒙OS Hi3861的芯片实际开发中遇到的问题 优点: 比较适合开发者快速开发,上面的硬件操作的函数封装很简单,非常适合初学者使用封装好的函数调用硬件管脚,比如I2c gpio spi sdio 都 ...
- 鸿蒙硬件HI3861-INA226-电压测量(外挂方案)
鸿蒙硬件HI3861-INA226-电压测量(外挂方案) ina226.c #include "ina226.h" #include <stdio.h> #includ ...
- 鸿蒙硬件HI3861-I2C-MCP23017
鸿蒙硬件HI3861-I2C-MCP23017 如果有什么问题可以来B站问我 https://space.bilibili.com/309103931 1.什么是MCP23017 我是一款基于I2C接 ...
最新文章
- Spring bean 之 FactoryBean
- 设计模式——外观模式
- 几个常见的网络故障分析
- 中学计算机课的现状和感受,中小学信息技术课程的现状与发展.doc
- Webpack搭建ES6开发环境步骤
- 在linux中,强行中断程序 kill命令
- cpuz测试分数天梯图_最新手机处理器天梯图出炉:第一实至名归,你手机处理器排名高吗...
- 浅谈SQL语言的特点
- 发电厂及电力系统类毕业论文文献都有哪些?
- linux未找到 ftp命令,Linux服务器ftp命令找不到
- 密码学(三、非对称加密)
- w i ndows,解释计算 机Windows的学习英语(10页)-原创力文档
- Windows系统SVG图片预览插件
- Linux环境下文件写入失败可能原因
- 机器学习笔记 - 使用Keras和深度学习进行乳腺癌分类
- 4PAM在高斯信道与瑞利信道下的基带仿真系统实验
- 7位号段、运营商、归属地数据爬取与解析
- PyQt5+eric6之旅(三) - 多线程应用 - 追加显示
- Kubernetes Pod 所需要掌握的一切
- vue实现数字翻牌器组建,能够正常显示负数符号
热门文章
- python控制多台手机,用python同时启动多个appium,并让多个手机同时执行脚本
- 开源wms php,BIWEB WMS门户网站PHP开源建站系统
- python远程主机强迫关闭了_Python 远程主机强迫关闭了一个现有的连接
- nfs需要开通什么端口_开通微信小程序直播需要准备什么?
- iPad Air 2完全评测:可怕的三核CPU、六核GPU
- 深入分析Kubelet Bootstrap Checkpoint
- C++默认构造函数的合成
- 多浏览器判断,切换及使用
- 新一代企业级大数据应用方案
- 「前端」看懂前端脚手架你需要这篇webpack