如何使用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.cBUILD.gn 复制到openharmony源码的applications\sample\wifi-iot\app\iothardware目录下,

  2. 修改openharmony源码的applications\sample\wifi-iot\app\BUILD.gn文件,将其中的 features 改为:

    复制代码
     features = [
         "iothardware:traffic_light_demo",
     ]
  3. 在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.鸿蒙南向开发方向

相关推荐
安且惜8 小时前
Windows或mac支持本地抓包
windows·macos
OH_TPC8 小时前
HarmonyOS APP开发---“滤镜大师“图像处理App,需要用到这个库
java·图像处理·华为·harmonyos·鸿蒙
星恒讯工业路由器9 小时前
当无人机成为“空中路由器”:应急通信背后的联网技术支撑
物联网·信息与通信·wifi模块·无人机模块·无人机应急通信·空中基站·三断通信
会周易的程序员10 小时前
aiDgePLC — IEC61131-3 ST PLC 虚拟机调试与运行环境
c++·物联网·虚拟机·st·工业协议·iec61131·梯形图
老孙讲技术11 小时前
周末档期厨房爆单,带宽账单也爆了——不是直播难,是主码流 + always 计划在烧钱
后端·物联网
老孙讲技术12 小时前
校园开放日前夜才说要「全校透明」?我用轻应用把 9 路教室预览和回放嵌进了校园后台
后端·物联网
2501_9197490312 小时前
华为鸿蒙管理密码APP—小羊密码
华为·harmonyos·鸿蒙
Kingexpand_com14 小时前
物联网APP开发该选原生还是跨平台?场景选型详解
物联网·物联网app·物联网app定制开发·物联网开发公司
ITUnicorn15 小时前
【HarmonyOS】时间管理类APP:做成“自适应“
harmonyos
笔触狂放15 小时前
第2章 ArkTS(上)
华为·harmonyos·鸿蒙