#创作者激励# [FFH]标准系统HDF平台驱动(三)——ADC应用实现 原创 精华
FFH杞人
发布于 2023-3-21 09:27
浏览
6收藏
【本文正在参加2023年第一期优质创作者激励计划】
标准系统HDF平台驱动(三)——ADC应用实现
个人简介:
深圳技术大学FSR实验室
大三学生,正于九联科技
实习,共同学习研究鸿蒙南向开发
知识。
博客主页:https://ost.51cto.com/person/posts/15624680
Table of Contents
前言
前面两篇文章已经实现了ADC的HDF框架接入,现在已经可以正常调用HDF提供的ADC统一驱动接口进行应用开发。结合之前学的一些知识,设计一个基于NAPI框架和HDF框架读取温度传感器数据的程序应用。
参考
平台驱动使用
标准系统HDF平台驱动(一)——ADC驱动适配
标准系统HDF平台驱动(二)——ADC平台驱动使用
环境
- OpenHarmony-3.2-Beta5
- 九联UnionPi-Tiger开发板
- Visual Studio Code(版本需1.62.0及以上)
- USB_Burning_Tool烧录工具
- napi_generator工具可执行文件或vs code插件
- Deveco Studio(API 9 )
- LM35线性模拟温度传感器
概述
开发步骤
一. 编译构建实现
- 添加子系统
- 添加组件
打开unionpi_tiger/sample/napi/napisubsys/ohos.build文件,在"parts":中添加下列语句
- 添加产品定义
打开vendor/unionman/unionpi_tiger/config.json文件,在"subsystems":中添加下列语句
二. NAPI接口设计及NAPI框架生成
- 编写ts文件
新建文件@ohos.adc_hdf.d.ts
于vendor/unionman/unionpi_tiger/sample/napi/napisubsys/adc_hdf
目录下,声明应用接口函数get_adc_value,传入参数为通道号,返回值为ADC采样值,北向应用通过调用该接口获取的ADC采样值计算温度。
- 生成NAPI框架
使用napi_generator可执行程序或者vscode插件生成NAPI框架。
生成框架路径也选择当前路径,number类型选择uint32_t。
三. NAPI接口实现
- 实现adc_hdf.cpp接口
文件生成结束后,我们定义的北向应用接口需要在adc_hdf.cpp中实现,具体代码如下:
- 修改BUILD.gn文件
主要添加了ADC平台驱动所需依赖及头文件路径,并且修改目标子系统及所属部件,编译后会生成相应的.so共享库文件,存放在/system/lib/module目录下。
四. 编译打包烧录
- 进入源码根目录,执行如下命令进行编译:
- 编译完成后需要打包成可以给开发板烧录的镜像,执行一下命令:
- 固件打包完成,生成路径为编译根目录下的
out/unionpi_tiger/packages/phone/images/OpenHarmony.img
,下载或映射到Windows上进行烧录。 - 打开烧录工具,连接PC与开发板OTG口并接通电源,导入烧录包进行烧录。
或者使用hdc_std工具:
五. NAPI应用实现
-
新建OpenHarmony工程(stage+ArkTs)
-
导入外部接口
adc_hdf为上述定义NAPI接口生成的动态库文件名字一致,直接导入会报找不到包,忽略即可,prompt为弹窗组件接口。
- ADC通道选择组件(使用Swiper滑块视图容器实现)
新建滑块视图数据类
Swiper滑块视图容器组件,滑动或点击可以切换ADC通道,点击select进行数据采集。
- 文本组件显示温度值
- 温度计算及首页内容组件,程序启动时开启定时器,每隔1s获取一次ADC温度值。
- 应用签名
- 安装应用到开发板
结果演示
©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
adc_temperature.zip 88.47K 20次下载
已于2023-3-21 10:53:21修改
赞
10
收藏 6
回复
10
5
6
相关推荐
完整的一次打通南北过程
有了插件果然方便不少
点灯和测温总是拿到开发板最先完成的工作
学习了。
流程分享的很完整