
基于小凌派RK2206开发板:OpenHarmony如何使用IoT接口控制ADC外设 原创
1、案例简介
本案例主要讲解如何在小凌派-RK2206开发板上使用IoT库的ADC接口,进行ADC编程开发。
例程内容为创建一个任务,读取按键的ADC值,并打印到串口。
2、基础知识
ADC在日常设备中非常常见,以下我们将演示IoT库的ADC接口如何进行读取按键的ADC值,并打印到串口。
2.1、头文件
2.2、初始化ADC设备:IoTAdcInit
描述:
初始化ADC设备。
参数:
参数 | 类型 | 描述 |
---|---|---|
id | unsigned int | ADC通道 |
ADC通道有7个,对应以下7个引脚:
id | GPIO |
---|---|
0 | GPIO0_PC0 |
1 | GPIO0_PC1 |
2 | GPIO0_PC2 |
3 | GPIO0_PC3 |
4 | GPIO0_PC4 |
5 | GPIO0_PC5 |
6 | GPIO0_PC6 |
7 | GPIO0_PC7 |
返回值:
返回值 | 描述 |
---|---|
IOT_SUCCESS | 成功 |
IOT_FAILURE | 失败 |
实现:
hal_iot_adc.c
文件在device/rockchip/rk2206/adapter/hals/iot_hardware/wifiiot_lite
目录下。
2.3、取消初始化ADC设备:IoTAdcDeinit
描述:
取消初始化ADC设备。
参数 | 类型 | 描述 |
---|---|---|
id | unsigned int | ADC通道 |
ADC通道有7个,对应以下7个引脚:
id | GPIO |
---|---|
0 | GPIO0_PC0 |
1 | GPIO0_PC1 |
2 | GPIO0_PC2 |
3 | GPIO0_PC3 |
4 | GPIO0_PC4 |
5 | GPIO0_PC5 |
6 | GPIO0_PC6 |
7 | GPIO0_PC7 |
返回值:
返回值 | 描述 |
---|---|
IOT_SUCCESS | 成功 |
IOT_FAILURE | 失败 |
实现:
hal_iot_adc.c
文件在device/rockchip/rk2206/adapter/hals/iot_hardware/wifiiot_lite
目录下。
2.4、获取ADC设备的值:IoTAdcGetVal
描述:
获取ADC设备的值。
参数:
参数 | 类型 | 描述 |
---|---|---|
id | unsigned int | ADC通道 |
val | unsigned int * | 数据指针 |
ADC通道有7个,对应以下7个引脚:
id | GPIO |
---|---|
0 | GPIO0_PC0 |
1 | GPIO0_PC1 |
2 | GPIO0_PC2 |
3 | GPIO0_PC3 |
4 | GPIO0_PC4 |
5 | GPIO0_PC5 |
6 | GPIO0_PC6 |
7 | GPIO0_PC7 |
返回值:
返回值 | 描述 |
---|---|
IOT_SUCCESS | 成功 |
IOT_FAILURE | 失败 |
实现:
hal_iot_adc.c
文件在device/rockchip/rk2206/adapter/hals/iot_hardware/wifiiot_lite
目录下。
3、程序设计
主要代码分析
在adc_example
函数中,创建一个任务。
adc_thread
任务中调用IOT库的ADC接口控制ADC。
ADC模块采用10位的ADC采集寄存器,可测试电压范围为0~3.3V,所以ADC采集数值换算为实际电压计算公司为:
注意:实际电压是 float
类型,源代码计算要规范。具体源代码如下所示:
4、编译调试
修改 vendor/lockzhiner/rk2206/sample
路径下 BUILD.gn 文件,指定 iot_adc_example
参与编译。
修改 device/lockzhiner/rk2206/sdk_liteos
路径下 Makefile 文件,添加 -liot_adc_example
参与编译。
5、运行结果
示例代码编译烧录代码后,按下开发板的RESET按键,通过串口助手查看日志,显示如下:
