OpenHarmony系统调试实验-GPIO驱动蜂鸣器
·
OpenHarmony 系统调试实验 — GPIO驱动蜂鸣器
一、实验目的
- 熟悉 OpenHarmony 工程中定时器(Timer)的创建与回调机制。
- 掌握 GPIO 引脚配置控制蜂鸣器发声的基础 API。
- 学习 OpenHarmony LiteOS 下线程与定时器的协同调度方法。
- 实现蜂鸣器按固定周期发出提示音的功能。
二、实验环境
开发工具:VSCode、DevEco Device Tool、Ubuntu 20.04.6
开发板:海思 Hi3861V100
辅助工具:RaiDrive、HiBurn(烧录工具)
三、实验原理
- 蜂鸣器控制原理通过 hi_io_set_func() 将引脚复用为 GPIO 模式,再通过hi_gpio_set_dir() 设置为输出方向,最后用hi_gpio_set_output_val() 控制高低电平,实现蜂鸣器的发声与停止。
- 定时器调度原理使用 osTimerNew() 创建周期性定时器,设置定时周期后,通过osTimerStart() 启动定时器。每次定时到期,系统会自动调用回调函数,在回调函数中控制蜂鸣器的高低电平,实现周期性发声。
四、工程创建与配置
- 项目结构

- 根应用配置( applications/sample/wifi-iot/app/BUILD.gn )

- 模块构建配置( 4.0_Buzz_Timer/BUILD.gn )

五、核心代码实现( Buzz.c )

六、编译与烧录步骤 - 编译工程在VSCode中打开DevEco Device Tool插件,点击 Rebuild 编译工程,等待编译成功。

- 文件拷贝通过RaiDrive将Ubuntu系统中生成的 Hi3861_wifiot_allinone.bin 文件复制到Windows系统。

- 烧录程序打开HiBurn工具,选择对应串口,波特率设置为 921600 ,勾选 Auto burn ,点击 Connect 后按开发板复位键开始烧录。

- 运行验证烧录完成后,复位开发板,可观察到蜂鸣器按照每200ms响100ms的周期发出提示音,同时串口终端可查看程序运行日志。
七、实验现象与结果
开发板上的蜂鸣器按照预设周期发声,每200ms响一次,每次持续100ms,循环往复,蜂鸣器发声节奏均匀,无卡顿或乱响现象。
八、实验总结
- 本次实验掌握了 OpenHarmony 下 GPIO 引脚的配置与控制方法,理解了蜂鸣器发声的底层原理。
- 学习了 OpenHarmony LiteOS 系统中定时器的创建、启动与回调机制,验证了定时器与线程协同调度的效果。
- 通过蜂鸣器的周期性控制,加深了对硬件定时任务与软件逻辑结合的理解,为后续嵌入式定时应用开发打下了基础。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐
所有评论(0)