OpenHarmony 系统调试实验 — 点亮RGB LED灯

实验一、实验目的

  1. 熟悉 OpenHarmony 开发环境的搭建与工程结构。
  2. 掌握 GPIO 引脚配置与控制的基础 API。
  3. 学习 OpenHarmony 系统下多线程的创建与调度方法。
  4. ​实现 RGB LED 灯的多颜色循环闪烁控制。

二、实验环境

  1. 开发工具:VSCode、DevEco Device Tool、Ubuntu 20.04.6​
  2. 开发板:海思 Hi3861V100​
  3. 辅助工具:RaiDrive、HiBurn(烧录工具)

三、实验原理

  1. GPIO 控制原理通过 hi_io_set_func() 将引脚复用为 GPIO 模式,再通过hi_gpio_set_dir() 设置为输出方向,最后用hi_gpio_set_output_val() 控制高低电平,实现 LED 的亮灭。
  2. ​多线程调度使用 osThreadNew() 创建两个线程:​
    线程1:负责控制 RGB 三色灯循环切换颜色。​
    线程2:定时打印日志,验证多线程同时运行的状态。

四、工程创建与配置

  1. 项目结构
    在这里插入图片描述
  2. 根应用配置( applications/sample/wifi-iot/app/BUILD.gn )
    在这里插入图片描述
  3. 模块构建配置(3.0_RGB_Blink_Thread/BUILD.gn )
    在这里插入图片描述
    五、核心代码实现( RGB_Blink.c )
    在这里插入图片描述
    在这里插入图片描述
    六、编译与烧录步骤
  4. 编译工程在VSCode中打开DevEco Device Tool插件,点击 Rebuild 编译工程,等待编译成功。​
    在这里插入图片描述
  5. 文件拷贝通过RaiDrive将Ubuntu系统中生成的 Hi3861_wifiot_allinone.bin 文件复制到Windows系统。
    在这里插入图片描述
    ​3. 烧录程序打开HiBurn工具,选择对应串口,波特率设置为 921600 ,勾选 Auto burn ,点击 Connect 后按开发板复位键开始烧录。​4. 运行验证烧录完成后,复位开发板,可观察到RGB LED灯按红→绿→蓝→白→灭→青→黄→品红的顺序循环切换,同时串口终端会每3秒打印一次日志信息。
    在这里插入图片描述
    七、实验现象与结果
    开发板上的RGB LED灯按照预设的8种颜色循环闪烁,每个状态保持约0.5秒。​​实验结果与预期一致,成功实现了多线程控制下的RGB LED灯循环变色功能。
    在这里插入图片描述
    八、实验总结
  6. 本次实验掌握了 OpenHarmony 下 GPIO 引脚的配置与控制方法,理解了 LED 亮灭的底层原理。​
  7. 学习了 OpenHarmony LiteOS 系统中多线程的创建与调度,验证了线程并发执行的效果。​
  8. 通过 RGB LED 灯的多颜色控制,加深了对硬件控制与软件逻辑结合的理解,为后续嵌入式开发打下了基础。
Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐