如何使用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.鸿蒙南向开发方向

相关推荐
启明云端wireless-tag1 小时前
ESP32-S3设备智能化升级,物联网无线AI语音交互,让生活更加便捷和有趣
物联网·乐鑫·esp32-s3·无线方案·ai语音交互
lrlianmengba1 小时前
推荐一款好用的ios传输设备管理工具:AnyTrans for iOS
macos·ios·cocoa
PC端游爱好者1 小时前
手机怎么玩steam游戏?随时随地远程串流玩steam游戏教程
游戏·macos·智能手机·电脑
柯南二号2 小时前
HarmonyOS ArkTS 下拉列表组件
前端·javascript·数据库·harmonyos·arkts
帅比九日3 小时前
【HarmonyOS NEXT】实战——登录页面
前端·学习·华为·harmonyos
鸿蒙开天组●3 小时前
鸿蒙进阶篇-属性动画-animateTo&转场动画
华为·harmonyos
XZHOUMIN4 小时前
网易博客旧文-----XCODE离线帮助文件使用的补充说明
ide·macos·xcode
天下皆白_唯我独黑5 小时前
超好用shell脚本NuShell mac安装
macos
山城码农笑松哥5 小时前
Mac解压包安装MongoDB8并设置launchd自启动
mongodb·macos
bjxiaxueliang5 小时前
一文详解MacOS使用VSCode搭建SpringBoot+Gradle开发环境
spring boot·vscode·macos