成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

[FFH]標準系統(tǒng)HDF平臺驅(qū)動(二)—ADC平臺驅(qū)動使用

系統(tǒng) OpenHarmony
ADC(Analog to Digital Converter),即模擬-數(shù)字轉(zhuǎn)換器,是一種將模擬信號轉(zhuǎn)換成對應(yīng)數(shù)字信號的設(shè)備。

??想了解更多關(guān)于開源的內(nèi)容,請訪問:??

??51CTO 開源基礎(chǔ)軟件社區(qū)??

??https://ost.51cto.com??

前言

前面一篇文章已經(jīng)實現(xiàn)了UnionPi_Tiger的ADC驅(qū)動的HDF框架接入(在最新的master版本上已經(jīng)進行了適配,OpenHarmony-3.2-Beta5上目前還沒實現(xiàn)),現(xiàn)在已經(jīng)可以正常調(diào)用HDF提供的ADC統(tǒng)一驅(qū)動接口進行應(yīng)用開發(fā)。現(xiàn)在就使用這些接口來讀取LM35溫度傳感器數(shù)據(jù)。

環(huán)境

  • OpenHarmony-3.2-Beta5
  • 九聯(lián)UnionPi-Tiger開發(fā)板
  • USB_Burning_Tool燒錄工具
  • LM35線性模擬溫度傳感器

參考

??平臺驅(qū)動使用——ADC????標準系統(tǒng)HDF平臺驅(qū)動(一)——ADC驅(qū)動適配??

前置知識

ADC

  1. 簡介
    ADC(Analog to Digital Converter),即模擬-數(shù)字轉(zhuǎn)換器,是一種將模擬信號轉(zhuǎn)換成對應(yīng)數(shù)字信號的設(shè)備。
  2. 基本概念
  • 分辨率:即每個采樣數(shù)據(jù)精度,用多少位數(shù)字來表示采集到一個模擬量,分辨率越高就能采集越精確的數(shù)據(jù)。常用分辨率:8bit、10bit、12bit。
  • 精度:即模擬量轉(zhuǎn)換成數(shù)字量的精確程度
  • 采樣速率:即每秒對ADC采樣的次數(shù)

ADC設(shè)備硬件連接

#創(chuàng)作者激勵# [FFH]標準系統(tǒng)HDF平臺驅(qū)動(二)——ADC平臺驅(qū)動使用-開源基礎(chǔ)軟件社區(qū)

除電源線和地線之外,ADC只需要1根線與被測量的設(shè)備進行連接,例如對于UnionPi_Tiger與LM35線性模擬溫度傳感器如下:

  • 紅線 -- 3.3V
  • 黑線 -- GND
  • 藍線 -- ADC_1/ADC_2

#創(chuàng)作者激勵# [FFH]標準系統(tǒng)HDF平臺驅(qū)動(二)——ADC平臺驅(qū)動使用-開源基礎(chǔ)軟件社區(qū)

LM35溫度傳感器原理及計算

購買:??LM35線性模擬溫度傳感器??LM35數(shù)據(jù)手冊

  • LM35測溫范圍是0℃到100℃,靈敏度為10mV/℃,輸出電壓與溫度成正比。
  • 輸入輸出以及電壓和溫度的關(guān)系如下。

#創(chuàng)作者激勵# [FFH]標準系統(tǒng)HDF平臺驅(qū)動(二)——ADC平臺驅(qū)動使用-開源基礎(chǔ)軟件社區(qū)

#創(chuàng)作者激勵# [FFH]標準系統(tǒng)HDF平臺驅(qū)動(二)——ADC平臺驅(qū)動使用-開源基礎(chǔ)軟件社區(qū)

  • 溫度值計算方法:
    開發(fā)板分辨率為12位,即??,查看原理圖可知ADC的信號基準電壓為1.8V。

#創(chuàng)作者激勵# [FFH]標準系統(tǒng)HDF平臺驅(qū)動(二)——ADC平臺驅(qū)動使用-開源基礎(chǔ)軟件社區(qū)

則信號電壓值計算為:
每10mv為1°C,則溫度值為: 

ADC平臺接口介紹

ADC接口定義了完成AD轉(zhuǎn)換的通用方法集合,包括:

  • ADC設(shè)備管理:打開或關(guān)閉ADC設(shè)備。
  • ADC讀取轉(zhuǎn)換結(jié)果:讀取AD轉(zhuǎn)換結(jié)果。
    具體API詳見//drivers/hdf_core/framework/include/platform/adc_if.h。

接口名

接口描述

參數(shù)

返回值

DevHandle AdcOpen(uint32_t number)

打開ADC設(shè)備

number:ADC設(shè)備號

DevHandle:ADC設(shè)備句柄

void AdcClose(DevHandle handle)

關(guān)閉ADC設(shè)備

handle:ADC設(shè)備句柄

int32_t AdcRead(DevHandle handle, uint32_t channel, uint32_t *val)

讀取AD轉(zhuǎn)換結(jié)果值

handle:ADC設(shè)備句柄

channel:通道號

*val:采樣值

0:讀取成功

負數(shù):讀取失敗

使用流程

使用ADC設(shè)備的一般流程如圖。

#創(chuàng)作者激勵# [FFH]標準系統(tǒng)HDF平臺驅(qū)動(二)——ADC平臺驅(qū)動使用-開源基礎(chǔ)軟件社區(qū)


ADC模塊僅支持輪詢方式讀取數(shù)據(jù)。

平臺驅(qū)動使用

接下來測試一下ADC的HDF驅(qū)動框架是否成功,以讀取LM35溫度傳感器為例,測試ADC接口層函數(shù)功能。工程位置為vendor/unionman/unionpi_tiger/sample/hdf。

hdf
├── adc
├── adc.c
└── BUILD.gn
├── BUILD.gn

1、編寫驅(qū)動代碼

#include <stdio.h>
#include <stdlib.h>
#include "adc_if.h"
#include "hdf_log.h"
#include "osal_time.h"
/* 設(shè)備號0,通道號1 */
#define ADC_DEVICE_NUM 0
#define TEMP_CONST (1.8/(0.01*4096))

int32_t main(int argc, char *argv[])
{
int32_t ret;
uint32_t channelNum=0;
DevHandle adcHandle = NULL;
uint32_t read_val = 0;
double temperature = 0;
//默認打開通道0,可以輸入?yún)?shù)使用其他通道
if(argc == 2)
{
channelNum=atoi(argv[1]);
}

/* 打開ADC設(shè)備 */
adcHandle = AdcOpen(ADC_DEVICE_NUM);
if (adcHandle == NULL) {
HDF_LOGE("%s: Open ADC%u fail!", __func__, ADC_DEVICE_NUM);
return -1;
}
/* 讀取ADC數(shù)據(jù) */
ret = AdcRead(adcHandle, channelNum, &read_val);
if (ret != HDF_SUCCESS) {
HDF_LOGE("%s: ADC read fail!:%d", __func__, ret);
AdcClose(adcHandle);
return -1;
}
/* 計算溫度 */
temperature = ((double)read_val) * TEMP_CONST;

printf("ADC value is %d\r\n",read_val);
printf("Temperature is %.1f°C\n", temperature);

HDF_LOGI("%s: ADC read successful!", __func__);

/* 訪問完畢關(guān)閉ADC設(shè)備 */
AdcClose(adcHandle);
return HDF_SUCCESS;
}

2、編寫B(tài)UILD.gn

import("http://build/ohos.gni")
import("http://drivers/hdf_core/adapter/uhdf2/uhdf.gni")

ohos_executable("adc") {
sources = [ "adc.c" ]

include_dirs = [
"http://drivers/hdf_core/framework/include/platform",
]

deps = [ "http://drivers/hdf_core/adapter/uhdf2/platform:libhdf_platform" ]

external_deps = [
"hdf_core:libhdf_utils",
"hiviewdfx_hilog_native:libhilog",
]

cflags = [
"-Wall",
"-Wextra",
"-Werror",
"-Wno-format",
"-Wno-format-extra-args",
]

install_enable = true
install_images = [ "vendor" ]
module_install_dir = "bin"
part_name = "unionman_products"
}

3、添加進編譯

import("http://build/ohos.gni")

group("hdf") {
deps = [
"gpio:gpio",
"led_light:led_light",
"pwm:pwm",
"adc:adc" # 添加這句話
]
}

4、編譯打包燒錄

具體步驟參考:https://gitee.com/openharmony/device_board_unionman/blob/master/unionpi_tiger/README_zh.md#編譯與調(diào)試。

如果開發(fā)板原本燒錄的系統(tǒng)與編譯的系統(tǒng)一致,也可以直接通過hdc_std工具直接將生成的可執(zhí)行程序發(fā)送到開發(fā)板,編譯生成的可執(zhí)行程序位于out/unionpi_tiger/packages/phone/vendor/bin。

  • 打開cmd窗口,掛載,打開權(quán)限
hdc_std shell
mount -o rw,remount /
  • 發(fā)送文件
hdc_std file 你的路徑/adc /vendor/adc
  • 運行可執(zhí)行文件
./vendor/bin/adc

5、運行

連接好傳感器后,進入開發(fā)板終端:

./vendor/bin/adc  #默認通道0進行采樣(ADC_1)
./vendor/bin/adc 1 #使用通道1進行采樣(ADC_2)

運行結(jié)果:

#創(chuàng)作者激勵# [FFH]標準系統(tǒng)HDF平臺驅(qū)動(二)——ADC平臺驅(qū)動使用-開源基礎(chǔ)軟件社區(qū)

文章相關(guān)附件可以點擊下面的原文鏈接前往下載:

 https://ost.51cto.com/resource/2622。

??想了解更多關(guān)于開源的內(nèi)容,請訪問:??

??51CTO 開源基礎(chǔ)軟件社區(qū)??

??https://ost.51cto.com??

責(zé)任編輯:jianghua 來源: 51CTO 開源基礎(chǔ)軟件社區(qū)
相關(guān)推薦

2023-03-20 16:21:26

ADC數(shù)字轉(zhuǎn)換器

2023-03-24 14:47:24

NAPI框架HDF框架

2023-09-14 15:49:42

PWM鴻蒙

2023-09-13 15:33:57

I2C鴻蒙

2021-12-15 10:02:25

鴻蒙HarmonyOS應(yīng)用

2022-08-08 19:35:37

HDF驅(qū)動開發(fā)鴻蒙

2023-08-18 14:28:18

UART異步通信

2023-09-06 15:27:22

ADC鴻蒙

2021-09-10 15:12:04

鴻蒙HarmonyOS應(yīng)用

2023-09-06 15:35:14

2017-11-16 14:46:58

Linuxplatform總線驅(qū)動設(shè)備

2021-09-07 15:48:28

鴻蒙HarmonyOS應(yīng)用

2023-03-16 15:18:16

2017-03-03 08:40:32

2021-11-30 14:52:41

鴻蒙HarmonyOS應(yīng)用

2022-02-16 15:55:21

驅(qū)動調(diào)用操作系統(tǒng)鴻蒙

2009-08-21 19:04:11

Windows 7驅(qū)動戴爾

2022-09-07 15:08:58

操作系統(tǒng)鴻蒙

2022-10-17 14:29:24

鴻蒙應(yīng)用開發(fā)

2023-08-07 07:48:47

點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 日韩一区二区三区在线 | 久久久久久中文字幕 | 神马久久久久久久久久 | 欧美日韩手机在线观看 | 国产午夜精品一区二区三区四区 | 久久国产一区二区三区 | 99久久久无码国产精品 | 视频在线一区二区 | 欧美aⅴ| 精品日本中文字幕 | 日韩成人在线看 | 亚洲欧美一区在线 | 成人免费视频 | 国内91在线 | 日本不卡一区 | av天空| 久久精品视频12 | 欧美日韩黄 | 日韩在线成人 | 日韩精品免费一区 | 国产三级日本三级 | 久久久精品影院 | 992tv人人草 久久精品超碰 | 国产精品久久久久久久粉嫩 | 天天操天天操 | 国产性色视频 | 日本在线一二 | 日韩欧美一区二区三区免费观看 | 成人久久18免费网站图片 | 日韩有码在线播放 | 国产一二区在线 | 五月婷婷色 | 亚洲精品一区二区三区免 | 国产精品久久久久无码av | 国产成人99久久亚洲综合精品 | 成人一区二区三区 | 免费av毛片| 91免费在线 | 国产91在线精品 | 国产精品欧美一区二区 | 精品欧美在线观看 |