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

相关推荐
生医转码,四海为家1 分钟前
零基础-动手学深度学习-6.6 卷积神经网络(LeNet)
人工智能·深度学习·cnn
CoovallyAIHub29 分钟前
避开算力坑!无人机桥梁检测场景下YOLO模型选型指南
深度学习·算法·计算机视觉
Despacito0o1 小时前
STM32 I2C通信完整教程:从协议原理到硬件实现
stm32·单片机·嵌入式硬件
你好,奋斗者!1 小时前
小电流驱动大电流:原理、实现方式与应用前景
stm32·单片机·嵌入式硬件·电路设计
liuhaikang2 小时前
【鸿蒙HarmonyOS Next App实战开发】视频提取音频
华为·音视频·harmonyos
爱笑的眼睛113 小时前
HarmonyOS应用上架流程详解
华为·harmonyos
seasonsyy3 小时前
2.安装CUDA详细步骤(含安装截图)
python·深度学习·环境配置·cuda
淦暴尼4 小时前
银行客户流失预测分析
python·深度学习·算法
go54631584654 小时前
在本地环境中运行 ‘dom-distiller‘ GitHub 库的完整指南
人工智能·深度学习·神经网络·算法·矩阵·github
XINVRY-FPGA5 小时前
XCZU4EV-1FBVB900E Xilinx FPGA AMD Zynq UltraScale+ MPSoC EV(Embedded Vision)
arm开发·嵌入式硬件·计算机视觉·fpga开发·硬件架构·硬件工程·fpga