如何试用Harmony OS控制外设——读取传感器?

相关知识点

本节涉及Harmony OS外设相关接口:

  • ADC接口

    • wifiiot_adc.h 头文件

      unsigned int AdcRead(WifiIotAdcChannelIndex channel, unsigned short *data, WifiIotAdcEquModelSel equModel,
      WifiIotAdcCurBais curBais, unsigned short rstCnt);

  • I2C接口

    • wifiiot_i2c.h头文件
    • I2cInit/I2cDeinit/I2cRead/I2cWrite

外设与主控芯片引脚的对应关系

  • HiSpark Wi-Fi IoT 开发套件 炫彩灯板

    • 三色LED------PWM占空比控制颜色
      • GPIO10: 红
      • GPIO11: 绿
      • GPIO12: 蓝
    • 光敏电阻------ADC采集值和电压对应,电压和电阻对应,电阻和光照强度对应
      • GPIO09: ADC4
    • 人体红外传感器------ADC采集值反应是否有人靠近
      • GPIO07: ADC3
  • HiSpark Wi-Fi IoT 开发套件 OLED屏板

    • OLED屏------SSD1306芯片,I2C总线, 地址 0x78
      • GPIO13: I2C0_SDA
      • GPIO14: I2C0_SCL
    • 两个按键------ADC,接在同一个GPIO引脚上,通过电压区分
      • GPIO05: ADC2
  • HiSpark Wi-Fi IoT 开发套件 环境检测板

    • 蜂鸣器------PWM控制声音的评率和音量

      • GPIO09: PWM0
    • MQ2 燃气传感器------ADC读取模拟值

      • GPIO11: ADC5
    • AHT20 温湿度传感器------I2C接口通信,地址 0x38

      • GPIO13: I2C0_SDA
      • GPIO14: I2C0_SCL

如何编译

  1. 将此目录下的所有.c文件和BUILD.gn文件拷贝到,openharmony源码的applications\sample\wifi-iot\app\iothardware目录下,

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

    复制代码
     features = [
         "iothardware:sensing_demo",
     ]
  3. 修改applications\sample\wifi-iot\app\iothardware\BUILD.gn 中的solo_demo下的sources属性,放开其中的的一个文件的注释,以开启选择对应功能文件;

    复制代码
     sources = [
         "colorful_light_demo.c",
         # "environment_demo.c",
         # "oled_demo.c", "oled_ssd1306.c"
     ]
  4. 在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
  2. 编译过程中报错:undefined reference to hi_i2c_init 等几个 hi_i2c_开头的函数,

    • 原因: 因为默认情况下,hi3861_sdk中,I2C的CONFIG选项没有打开
    • 解决: 修改vendor\hisi\hi3861\hi3861\build\config\usr_config.mk文件中的CONFIG_I2C_SUPPORT行:
      • # CONFIG_I2C_SUPPORT is not set修改为CONFIG_I2C_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.鸿蒙南向开发方向

相关推荐
island131411 分钟前
CANN GE(图引擎)深度解析:计算图优化管线、内存静态规划与异构任务的 Stream 调度机制
开发语言·人工智能·深度学习·神经网络
艾莉丝努力练剑11 分钟前
深度学习视觉任务:如何基于ops-cv定制图像预处理流程
人工智能·深度学习
禁默16 分钟前
大模型推理的“氮气加速系统”:全景解读 Ascend Transformer Boost (ATB)
人工智能·深度学习·transformer·cann
User_芊芊君子17 分钟前
CANN大模型加速核心ops-transformer全面解析:Transformer架构算子的高性能实现与优化
人工智能·深度学习·transformer
lbb 小魔仙23 分钟前
【HarmonyOS实战】OpenHarmony + RN:自定义 useFormik 表单处理
react native·harmonyos
飞睿科技31 分钟前
乐鑫智能开关方案解析:基于ESP32-C系列的低功耗、高集成设计
嵌入式硬件·物联网·esp32·智能家居·乐鑫科技
果粒蹬i43 分钟前
【HarmonyOS】DAY7:鸿蒙跨平台 Tab 开发问题与列表操作难点深度复盘
华为·harmonyos
island13141 小时前
CANN ops-nn 算子库深度解析:神经网络核心计算的硬件映射、Tiling 策略与算子融合机制
人工智能·深度学习·神经网络
王码码20351 小时前
Flutter for OpenHarmony 实战之基础组件:第二十七篇 BottomSheet — 动态底部弹窗与底部栏菜单
android·flutter·harmonyos
心疼你的一切1 小时前
数字智人:CANN加速的实时数字人生成与交互
数据仓库·深度学习·aigc·交互·cann