当前位置: 首页 > news >正文

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

http://www.lryc.cn/news/325092.html

相关文章:

  • 1.1-数组-704. 二分查找★
  • 人物百度百科怎么做?需要什么资料?
  • 在基于Android相机预览的CV应用程序中使用 OpenCL
  • 网络分类简述与数据链路层协议(PPP)
  • Linux文件系列:磁盘,文件系统,软硬链接
  • GPT4.0
  • 软件工程(双语)
  • 网络——套接字编程UDP
  • FPGA_AD9361
  • 探讨Java代码混淆加固工具
  • Linux——du, df命令查看磁盘空间使用情况
  • 数据库实验(一)SQL Server触发器
  • 添加网址到主页
  • 消息中间件如何实现高可用
  • Hbase 王者荣耀数据表 HBase常用Shell命令
  • 家用智能洗地机哪个牌子好?4款型号让你解锁高效省力生活体验
  • Linux--进程(1)
  • Qt登录页面
  • 软件工程-第8章 软件测试
  • 专业135+总分400+重庆邮电大学801信号与系统考研经验重邮电子信息与通信工程,真题,大纲,参考书。
  • 主干网络篇 | YOLOv8改进之在主干网络中引入密集连接卷积网络DenseNet
  • lavarel的php程序是顺序执行,用pdo mysql连接池好像没有什么用啊。没有办法挂起等待啊,为什么要用连接池,应用场景是什么
  • spring maven项目 实时接口请求次数及时间发送到grafana监控_亲测成功
  • 银行数字人民币系统应用架构设计
  • 流畅的 Python 第二版(GPT 重译)(三)
  • 06-验证浮点数输入
  • shell实现查询进程号并批量kill(脚本)
  • 【软考】蠕虫病毒
  • 大模型知识点汇总——分布式训练
  • java之网络编程