如何使用Harmony OS控制外设——输入输出?

相关知识点

  • Hi3861开发板第一个示例程序演示

  • 熟悉使用DevEco Device Tool插件进行程序烧录

  • 熟悉串口调试工具sscom的使用

  • 官方文档中控制核心板上LED的led_example.c讲解及演示

    • 源码路径:applications/sample/wifi-iot/app/iothardware/led_example.c
    • Harmony OS IoT内核(liteos-m)接口——CMSIS-RTOS API v2
      • 线程创建osThreadNew
    • 鸿蒙系统启动注册接口——ohos_init.h
      • SYS_RUN注册启动阶段自动运行的函数
      • 不同宏对应不同阶段,应用代码推荐使用:
        • APP_FEATURE_INIT注册宏
    • 使用GPIO接口输出高低电平,实现控制LED灯亮灭
      • 设置管脚功能IoSetFunc
      • 设置GPIO引脚方向GpioSetDir
    • 使用GPIO接口注册中断处理函数,实现USER按键响应(输入)
      • 设置内部上拉下拉状态IoSetPull(没有外部上拉电阻时需要设置上拉,才能保证能够检测到下降沿)
      • 注册中断处理函数GpioRegisterIsrFunc,具体参数使用参考头文件说明
    • 具体使用参考wifiiot_gpio.hwifiiot_gpio_ex.h文件里的注释
  • HiSpark Wi-Fi IoT 开发套件 交通灯板 控制

    • 使用PWM接口输出PWM方波,实现蜂鸣器控制
    • 使用GPIO接口的部分和上一个示例类似
    • 具体使用参考wifiiot_pwm.h文件里的注释

核心板和交通灯板上外设与主控芯片(Hi3861)引脚的对应关系

  • 核心板
    • GPIO_9 连接LED灯,输出低电平点亮LED灯
    • GPIO_5 连接按键,按键中断控制LED灯状态反转
  • 交通灯板
    • GPIO_8 连接蜂鸣器,输出PWM波控制蜂鸣器发出声音
    • GPIO_9 连接按键,按键中断切换亮的LED灯,同时切换蜂鸣器响或者不响
    • GPIO_10 连接红色LED,输出高电平点亮红色LED灯
    • GPIO_11 连接绿色LED,输出高电平点亮绿色LED灯
    • GPIO_12 连接黄色LED,输出高电平点亮黄色LED灯

如何编译

  1. 将此目录下的 traffic_light_demo.c 和 BUILD.gn 复制到openharmony源码的applications\sample\wifi-iot\app\iothardware目录下,
  2. 修改openharmony源码的applications\sample\wifi-iot\app\BUILD.gn文件,将其中的 features 改为:
    features = [
        "iothardware:traffic_light_demo",
    ]
  1. 在openharmony源码顶层目录执行:python build.py wifiiot

报错解决

  1. 编译过程中报错:undefined reference to hi_pwm_init 等几个 hi_pwm_开头的函数,
    • 原因: 因为默认情况下,hi3861_sdk中,PWM的CONFIG选项没有打开
    • 解决: 修改vendor\hisi\hi3861\hi3861\build\config\usr_config.mk文件中的CONFIG_PWM_SUPPORT行:
      • # CONFIG_PWM_SUPPORT is not set修改为CONFIG_PWM_SUPPORT=y

为了能让大家更好的学习鸿蒙(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.鸿蒙南向开发方向

相关推荐

  1. HarmonyOS输入框焦点控制实现键盘显隐

    2024-03-26 15:54:01       9 阅读
  2. 如何控制docker服务的日志输出

    2024-03-26 15:54:01       34 阅读
  3. C语言如何控制输出精度?

    2024-03-26 15:54:01       37 阅读
  4. C语言如何控制输出⻓度?

    2024-03-26 15:54:01       33 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-26 15:54:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-26 15:54:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-26 15:54:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-26 15:54:01       18 阅读

热门阅读

  1. WPF 界面命令绑定(MVVM结构)

    2024-03-26 15:54:01       17 阅读
  2. flutter 父组件调用子组件方法

    2024-03-26 15:54:01       16 阅读
  3. Docker

    Docker

    2024-03-26 15:54:01      17 阅读
  4. 45个常用Linux 命令,让你轻松玩转Linux

    2024-03-26 15:54:01       17 阅读
  5. 【保姆级讲解深度学习如何入门?的教程】

    2024-03-26 15:54:01       17 阅读
  6. 为什么要学编程?

    2024-03-26 15:54:01       16 阅读
  7. 使用 Docker Compose 部署单机版 Redis

    2024-03-26 15:54:01       15 阅读