OpenHarmony轻量系统开发【8】其它驱动开发示例

发布于:2024-04-19 ⋅ 阅读:(36) ⋅ 点赞:(0)

8.1代码示例

OpenHarmony代码中,Hi3861提供了绝大部分的驱动示例代码,文件路径:
device\soc\hisilicon\hi3861v100\sdk_liteos\app\demo\src
开发者可以参考,文件如下:

8.2如何使用

(1)创建文件夹

一般情况下,我们自己如果需要使用某个驱动,编写的代码要存放在app目录下,
这里我们以app_demo_pwm.c为例。
我们在app中新建文件夹 demo_pwm,里面存放代码 demo_pwm.c,然后app_demo_pwm.c所有的代码都复制到demo_pwm.c中,整个文件夹如下:

(2)编写入口函数

我们需要为demo_pwm.c编写一个入口函数,通常情况下,是创建一个线程去执行,通用的代码示例如下:

void *PWM_Task(const char *arg)
{
    arg = arg;

    while(1)
    {
//调用app_demo_pwm
        app_demo_pwm();
        usleep(10000);
    }
}

void pwm_demo(void)
{
    osThreadAttr_t attr;

    attr.name = "PWM_Task";
    attr.attr_bits = 0U;
    attr.cb_mem = NULL;
    attr.cb_size = 0U;
    attr.stack_mem = NULL;
    attr.stack_size = 2048;
    attr.priority = 26;

    if (osThreadNew((osThreadFunc_t)PWM_Task, NULL, &attr) == NULL) {
        printf("[PWM_Task] Falied to create PWM_Task!\n");
    }

}

SYS_RUN(pwm_demo);

(3)头文件

此外我们还得修改头文件,首先我们先删除掉原先的include的头文件,然后添加如下通用头文件:

#include <stdio.h>
#include <unistd.h>
#include "ohos_init.h"
#include "cmsis_os2.h"

#include <hi_types_base.h>
#include <hi_early_debug.h>

接着我们可以根据自己使用到的哪个驱动,添加对应的驱动头文件,比如我们用到的是pwm,那么添加的头文件如下:
#include <hi_pwm.h>

(4)头文件路径

此外我们还得修改头文件,这里主要修改 BUILD.gn文件,通常情况下需要增加:

"//device/soc/hisilicon/hi3861v100/hi3861_adapter/hals/communication/wifi_lite/wifiservice",
"//device/soc/hisilicon/hi3861v100/hi3861_adapter/kal",

修改后如下:

(5)修改usr_config.mk文件

此外,如果某个驱动对应的宏我们如果没有打开,那么我们可能还得修改usr_config.mk文件,该文件通常路径为:

device\soc\hisilicon\hi3861v100\sdk_liteos\build\config\usr_config.mk

这里我们用到了PWM,修改前:

修改后:

为了能让大家更好的学习鸿蒙(HarmonyOS NEXT)开发技术,这边特意整理了《鸿蒙开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05

《鸿蒙开发学习手册》:

如何快速入门:https://qr21.cn/FV7h05

  1. 基本概念
  2. 构建第一个ArkTS应用
  3. ……

开发基础知识:https://qr21.cn/FV7h05

  1. 应用基础知识
  2. 配置文件
  3. 应用数据管理
  4. 应用安全管理
  5. 应用隐私保护
  6. 三方应用调用管控机制
  7. 资源分类与访问
  8. 学习ArkTS语言
  9. ……

基于ArkTS 开发:https://qr21.cn/FV7h05

  1. Ability开发
  2. UI开发
  3. 公共事件与通知
  4. 窗口管理
  5. 媒体
  6. 安全
  7. 网络与链接
  8. 电话服务
  9. 数据管理
  10. 后台任务(Background Task)管理
  11. 设备管理
  12. 设备使用信息统计
  13. DFX
  14. 国际化开发
  15. 折叠屏系列
  16. ……

鸿蒙开发面试真题(含参考答案):https://qr18.cn/F781PH

鸿蒙开发面试大盘集篇(共计319页):https://qr18.cn/F781PH

1.项目开发必备面试题
2.性能优化方向
3.架构方向
4.鸿蒙开发系统底层方向
5.鸿蒙音视频开发方向
6.鸿蒙车载开发方向
7.鸿蒙南向开发方向