色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

【開鴻智谷NiobeU4開發(fā)板免費試用體驗】新增ADC按鍵控制LED的demo

開發(fā)板試用精選 ? 來源:開發(fā)板試用 ? 作者:電子發(fā)燒友論壇 ? 2022-10-14 14:42 ? 次閱讀

本文來源電子發(fā)燒友社區(qū),作者:soon順soon, 帖子地址:https://bbs.elecfans.com/jishu_2308713_1_1.html


前言

本文主要分享如何基于開鴻智谷NiobeU4開發(fā)板實現ADC按鍵點亮LED的案例。因NiobeU4開發(fā)板現在release出來的版本ADC的HDF丟失需要重新適配(調用AdcOpen會fail),本案例中使用esp32原生ADC接口,做演示。

1 硬件分析

主要用到開發(fā)板以下電路,涉及到GPIO02、GPIO27和ADC1_CH0。
LED_PCB.png

從原理圖看GPIO02控制雙色LED的紅色、GPIO27控制雙色LED的藍色,但實際測試是反過來的。
KEY_PCB.png

ADC1_CH0上有SW4和SW5兩個按鍵,通過ADC采樣值不一樣來區(qū)分

2 軟件開發(fā)

拷貝一份vendor/openvalley/niobeu4/demo/102_hdf_gpio重新命名如 301_key_led

2.1 修改Kconfig.liteos_m.applications文件按照如下說明添加

文件路徑:vendor/openvalley/niobeu4/demo/Kconfig.liteos_m.applications
修改內容:在最后的位置添加default "301_key_led" if NIOBEU4_APPLICATION_301

config NIOBEU4_APPLICATION_NAME
    string
    depends on USE_OPENVALLEY_APPLICATION
    default "001_quick_start" if NIOBEU4_APPLICATION_001
    default "002_system_los_thread" if NIOBEU4_APPLICATION_002
    default "003_system_los_timer" if NIOBEU4_APPLICATION_003
    default "004_system_los_event" if NIOBEU4_APPLICATION_004
    default "005_system_los_mutex" if NIOBEU4_APPLICATION_005
    default "006_system_los_semp" if NIOBEU4_APPLICATION_006
    default "007_system_los_message" if NIOBEU4_APPLICATION_007
    default "101_hdf_adc" if NIOBEU4_APPLICATION_101
    default "102_hdf_gpio" if NIOBEU4_APPLICATION_102
    default "103_hdf_uart" if NIOBEU4_APPLICATION_103
    default "104_hdf_watchdog" if NIOBEU4_APPLICATION_104
    default "105_hdf_pwm" if NIOBEU4_APPLICATION_105
    default "106_hdf_i2c" if NIOBEU4_APPLICATION_106
    default "107_hdf_spi" if NIOBEU4_APPLICATION_107
    default "201_bluetooth" if NIOBEU4_APPLICATION_201
    default "202_wifi" if NIOBEU4_APPLICATION_202
    default "301_key_led" if NIOBEU4_APPLICATION_301

"301_key_led" 需要與新建的demo目錄文件夾名字一致
NIOBEU4_APPLICATION_301:要與vendor/openvalley/niobeu4/demo/301_key_led/.application_config里面的名稱一致

2.2 修改.application_config

文件路徑:vendor/openvalley/niobeu4/demo/301_key_led/.application_config

config NIOBEU4_APPLICATION_301
    bool "301_key_led"
    select DRIVERS
    select DRIVERS_HDF 
    select DRIVERS_HDF_PLATFORM
    select DRIVERS_HDF_CONFIG_MACRO
    select DRIVERS_HDF_PLATFORM_GPIO

第一行 NIOBEU4_APPLICATION_301 保持與Kconfig.liteos_m.applications一致。
第二行"301_key_led"是之后在make menuconfig中顯示的名稱
之后可以添加需要自動選擇的配置項,如后續(xù)有用ADC的HDF可以在最后多添加一行如下

select DRIVERS_HDF_PLATFORM_ADC

2.4 編寫B(tài)UILD.gn

文件路徑vendor/openvalley/niobeu4/demo/301_key_led/BUILD.gn
文件內容如下:

import("http://kernel/liteos_m/liteos.gni")
assert(defined(LOSCFG_DRIVERS_HDF_CONFIG_MACRO), "Must Config LOSCFG_DRIVERS_HDF_CONFIG_MACRO in kernel/liteos_m menuconfig!") 
assert(defined(LOSCFG_DRIVERS_HDF_PLATFORM_GPIO), "Must Config LOSCFG_DRIVERS_HDF_PLATFORM_GPIO in kernel/liteos_m menuconfig!")   
module_name = get_path_info(rebase_path("."), "name")
kernel_module(module_name){
    sources = [
        "key_led.c",
    ]
    include_dirs = [
        "http://drivers/hdf_core/framework/include/platform/",
        "http://drivers/hdf_core/framework/include/utils/",
        "http://drivers/hdf_core/framework/support/platform/include/gpio",
        "http://drivers/hdf_core/adapter/khdf/liteos_m/osal/include/",
        "http://drivers/hdf_core/framework/include/core/",
        "http://drivers/hdf_core/framework/include/osal/",
        "http://device/soc/esp/esp32/components/esp_adc_cal/include/",
        "http://device/soc/esp/esp32/components/driver/esp32/include/"
    ]
}

主要修改
1.sources中添加你要編譯的文件如“key_led.c”
2.include_dirs中添加需要依賴的文件,此處比原案例102_hdf_gpio多添加以下內容,為ADC 相關依賴。

"http://device/soc/esp/esp32/components/esp_adc_cal/include/",
        "http://device/soc/esp/esp32/components/driver/esp32/include/"

2.5 編寫主程序

將原來的gpio_example.c改名為key_led.c,或者新建一個key_led.c,內容如下

#include 
#include "gpio_types.h"
#include "gpio_if.h"
#include "cmsis_os2.h"
#include "hdf_log.h"
#include "ohos_run.h"
#include "esp_adc_cal.h"

#define SYS_DELAY_TICKS 200
#define TASK_STACK_SIZE 4096
#define TASK_PRIO 25

#define KEY_LED_OFF 0
#define KEY_LED_ON  1

//在hcs文件中對應具體的GPIO口
#define RED_LED_PIN_INDEX   0       // 紅色LED
#define BLUE_LED_PIN_INDEX  1       // 藍色LED
#define PWR_SW_PIN_INDEX    2       // VCC_3.3 電源使能

osThreadId_t g_taskID = NULL;

static void key_led_test(void)
{
    int raw;

    GpioSetDir(PWR_SW_PIN_INDEX, GPIO_DIR_OUT);     // 設置VCC_3.3電源使能
    GpioWrite(PWR_SW_PIN_INDEX, KEY_LED_ON);

    GpioSetDir(RED_LED_PIN_INDEX, GPIO_DIR_OUT);    // 紅燈對應GPIO配置為輸出
    GpioWrite(RED_LED_PIN_INDEX, KEY_LED_OFF);//默認紅燈為關

    GpioSetDir(BLUE_LED_PIN_INDEX, GPIO_DIR_OUT); // 藍燈對應GPIO配置為輸出
    GpioWrite(BLUE_LED_PIN_INDEX, KEY_LED_OFF);//默認藍燈為關
    
    HDF_LOGE("[key_led] GPIO initn");

    //因為niobeu4開發(fā)板ADC hdf代碼需要重新適配所以先是用esp32原生接口
    adc1_config_width(ADC_WIDTH_12Bit); //設置采樣精度,2^12=4096
    adc1_config_channel_atten(ADC1_CHANNEL_0, ADC_ATTEN_DB_11); //設置電壓采樣范圍

    HDF_LOGE("[key_led] ADC initn");
	
	while (1)
	{
		raw = adc1_get_raw(ADC1_CHANNEL_0); //獲取ADC1通道0的原始值
		//HDF_LOGE("[key_led] raw: %dn", raw);
        if (raw < 100)
        {
            HDF_LOGE("[key_led] sw4 pressed raw: %dn", raw); 
            GpioWrite(RED_LED_PIN_INDEX, KEY_LED_ON);
            GpioWrite(BLUE_LED_PIN_INDEX, KEY_LED_OFF);

        }
        else if (raw >2000 && raw < 3000)
        {
            HDF_LOGE("[key_led] sw5 pressed raw: %dn", raw); 
            GpioWrite(RED_LED_PIN_INDEX, KEY_LED_OFF);
            GpioWrite(BLUE_LED_PIN_INDEX, KEY_LED_ON);
        }
        LOS_Msleep(SYS_DELAY_TICKS);
	}
}

static void key_led_task(void)
{
    HDF_LOGE("into key_led_task!n");
    osThreadAttr_t attr;
    attr.name = "key_led_task";
    attr.attr_bits = 0U;
    attr.cb_mem = NULL;
    attr.cb_size = 0U;
    attr.stack_mem = NULL;
    attr.stack_size = TASK_STACK_SIZE;
    attr.priority = TASK_PRIO;
    g_taskID = osThreadNew((osThreadFunc_t)key_led_test, NULL, &attr);
    if (g_taskID == NULL) {
        HDF_LOGE("Failed to create key_led_test thread!n");
    }
}

OHOS_APP_RUN(key_led_task);

使用ADC需要添加"esp_adc_cal.h"頭文件,相關函數以下三個

adc1_config_width(ADC_WIDTH_12Bit); //設置采樣精度,2^12=4096
    adc1_config_channel_atten(ADC1_CHANNEL_0, ADC_ATTEN_DB_11); //設置電壓采樣范圍
	adc1_get_raw(ADC1_CHANNEL_0); //獲取ADC1通道0的原始值

raw值的區(qū)分是通過加log打印來確認的,sw4按下在0附近,sw5按下在2047附件,所以取了一個大概的區(qū)間值。

2.6 確認hdf.hcs中GPIO配置

文件路徑:device/board/openvalley/niobeu4/liteos_m/hdf_config/hdf.hcs
需要確認是否配置如下GPIO配置

#include "device_info.hcs"
root {
    platform {
        gpio_config {
			......
            gpio_0 :: default_config {  // 雙色LED(紅色)
                gpio_attr = ["GPIO_NUM_2", "GPIO_FLOATING", "GPIO_DRIVE_CAP_DEFAULT"];
            }
            gpio_1 :: default_config {  // 雙色LED(藍色)
                gpio_attr = ["GPIO_NUM_27", "GPIO_FLOATING", "GPIO_DRIVE_CAP_DEFAULT"];
            }
            gpio_2 :: default_config {  // 電源使能
                gpio_attr = ["GPIO_NUM_26", "GPIO_FLOATING", "GPIO_DRIVE_CAP_DEFAULT"];
            }
			......
        }

3 編譯燒錄測試

3.1 編譯步驟

進入//kernel/liteos_m目錄, 執(zhí)行指令

make menuconfig

在menuconfig配置中進入如下選項:
(Top) → Platform → Board Selection → select board niobeu4 → use openvalley niobeu4 application → niobeu4 application choose
選擇301_key_led
config.png

回到sdk根目錄,執(zhí)行hb build腳本進行編譯。
編譯成功如下
build_success.png

3.2 燒錄測試

燒錄方式參考其他是用帖子,燒錄后正常運行日志如圖
run_log.png

演示視頻文末,上電默認雙色LED滅掉,按下SW4亮藍燈,按下SW5亮紅燈。
紅燈和藍燈的控制反過來了?
修改hdf.hcs將

gpio_0 :: default_config {  // 雙色LED(紅色)
                gpio_attr = ["GPIO_NUM_27", "GPIO_FLOATING", "GPIO_DRIVE_CAP_DEFAULT"];
            }
            gpio_1 :: default_config {  // 雙色LED(藍色)
                gpio_attr = ["GPIO_NUM_2", "GPIO_FLOATING", "GPIO_DRIVE_CAP_DEFAULT"];
            }

這樣顏色控制就正常了,是原理圖的GPIO標識錯誤了?還是PCB上件有問題?代碼有問題?歡迎評論區(qū)留下你的看法。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • 開鴻智谷
    +關注

    關注

    2

    文章

    125

    瀏覽量

    1157
  • NiobeU4
    +關注

    關注

    3

    文章

    31

    瀏覽量

    511
收藏 人收藏

    評論

    相關推薦

    有獎丨米爾 全志T536開發(fā)板免費試用

    米爾與全志合作發(fā)布的新品基于全志T536應用處理器的MYD-LT536-GK開發(fā)板免費試用活動來啦~~米爾提供了3塊價值750元的MYD-LT536-GK開發(fā)板發(fā)起
    的頭像 發(fā)表于 12-26 08:05 ?161次閱讀
    有獎丨米爾 全志T536<b class='flag-5'>開發(fā)板</b><b class='flag-5'>免費</b><b class='flag-5'>試用</b>

    【敏矽微ME32G070開發(fā)板免費體驗】+ADC測試與LED點亮

    *附件:【敏矽微ME32G070開發(fā)板免費體驗】+ADC測試與LED點亮.docx【敏矽微ME32G070開發(fā)板
    發(fā)表于 12-16 19:00

    追加名額丨米爾瑞芯微RK3576開發(fā)板有獎試用

    米爾與瑞芯微合作發(fā)布的新品基于瑞芯微RK3576應用處理器的MYD-LR3576開發(fā)板免費試用活動加碼啦~~米爾追加了2塊價值849元的MYD-LR3576開發(fā)板發(fā)起
    的頭像 發(fā)表于 11-22 01:00 ?217次閱讀
    追加名額丨米爾瑞芯微RK3576<b class='flag-5'>開發(fā)板</b>有獎<b class='flag-5'>試用</b>

    有獎丨米爾 瑞芯微RK3576開發(fā)板免費試用

    米爾與瑞芯微合作發(fā)布的新品基于瑞芯微RK3576應用處理器的MYD-LR3576開發(fā)板免費試用活動來啦~~米爾提供了7塊價值849元的MYD-LR3576開發(fā)板發(fā)起
    的頭像 發(fā)表于 11-12 01:00 ?358次閱讀
    有獎丨米爾 瑞芯微RK3576<b class='flag-5'>開發(fā)板</b><b class='flag-5'>免費</b><b class='flag-5'>試用</b>

    有獎試用!!RA-Eco-RA4E2-64PIN-V1.0開發(fā)板試用活動開始報名

    有獎試用!!RA-Eco-RA4E2-64PIN-V1.0開發(fā)板試用活動開始報名
    的頭像 發(fā)表于 11-09 01:02 ?285次閱讀
    有獎<b class='flag-5'>試用</b>!!RA-Eco-RA<b class='flag-5'>4</b>E2-64PIN-V1.0<b class='flag-5'>開發(fā)板</b><b class='flag-5'>試用</b>活動開始報名

    用技術助力構建鴻蒙世界的基石

    高級工程師王振德受邀出席此次技術交流盛會并發(fā)表主題演講,為鴻蒙生態(tài)的繁榮貢獻企業(yè)力量。的鴻蒙團隊一直與廣大開發(fā)者無私分享技術心得,共同解決著代碼難題,讓更多人能
    的頭像 發(fā)表于 10-29 08:05 ?230次閱讀
    <b class='flag-5'>開</b><b class='flag-5'>鴻</b>智<b class='flag-5'>谷</b>用技術助力構建鴻蒙世界的基石

    點擊參與米爾NXP i.MX 93開發(fā)板有獎試用

    米爾與NXP合作發(fā)布的新品基于NXPi.MX93應用處理器的MYD-LMX9X開發(fā)板免費試用活動來啦~~米爾提供了3塊價值678元的MYD-LMX9X開發(fā)板發(fā)起
    的頭像 發(fā)表于 06-13 08:02 ?570次閱讀
    點擊參與米爾NXP i.MX 93<b class='flag-5'>開發(fā)板</b>有獎<b class='flag-5'>試用</b>

    亮相OpenHarmony開發(fā)者大會,與生態(tài)共創(chuàng)開源新篇章!

    5月25日,以“心聚力智引未來”為主題的OpenHarmony開發(fā)者大會2024(以下簡稱大會)在深圳成功舉辦。獲得多項獎項及授牌
    的頭像 發(fā)表于 05-26 08:30 ?768次閱讀
    <b class='flag-5'>開</b><b class='flag-5'>鴻</b>智<b class='flag-5'>谷</b>亮相OpenHarmony<b class='flag-5'>開發(fā)</b>者大會,與生態(tài)共創(chuàng)開源新篇章!

    榮獲鴻蒙原生應用開發(fā)及培訓服務商牌匾授牌

    出席現場,并獲頒鴻蒙原生應用開發(fā)及培訓服務商稱號。圖/左4副總裁李傳釗
    的頭像 發(fā)表于 05-24 08:30 ?815次閱讀
    <b class='flag-5'>開</b><b class='flag-5'>鴻</b>智<b class='flag-5'>谷</b>榮獲鴻蒙原生應用<b class='flag-5'>開發(fā)</b>及培訓服務商牌匾授牌

    聯合多家伙伴戰(zhàn)略簽約,加速鴻蒙生態(tài)發(fā)展!

    5月20日,母公司拓維信息520產品與技術開放日暨28周年慶圓滿舉行,此次周年慶不僅是對公司創(chuàng)新突破、產品孵化和商業(yè)成果的回顧,更是攜手合作伙伴共同展望未來、開啟新篇章的重要時刻。
    的頭像 發(fā)表于 05-23 08:30 ?824次閱讀
    <b class='flag-5'>開</b><b class='flag-5'>鴻</b>智<b class='flag-5'>谷</b>聯合多家伙伴戰(zhàn)略簽約,加速鴻蒙生態(tài)發(fā)展!

    免費!NXP i.MX 93開發(fā)板有獎試用

    米爾與NXP合作發(fā)布的新品基于NXPi.MX93應用處理器的MYD-LMX9X開發(fā)板免費試用活動來啦~~米爾提供了2塊價值678
    的頭像 發(fā)表于 05-23 08:01 ?751次閱讀
    <b class='flag-5'>免費</b>!NXP i.MX 93<b class='flag-5'>開發(fā)板</b>有獎<b class='flag-5'>試用</b>

    受邀出席2023年度南山區(qū)經濟突出貢獻企業(yè)TOP峰會

    4月19日,2023年度南山區(qū)經濟突出貢獻今業(yè)TOP峰會順利召開,(深圳子公司)作為南山鴻蒙產業(yè)生態(tài)的核心企業(yè),OpenHarmony項目群A類捐贈人、鴻蒙生態(tài)服務公司首批入駐
    的頭像 發(fā)表于 04-20 08:29 ?444次閱讀
    <b class='flag-5'>開</b><b class='flag-5'>鴻</b>智<b class='flag-5'>谷</b>受邀出席2023年度南山區(qū)經濟突出貢獻企業(yè)TOP峰會

    拓維信息及旗下同獲華為HarmonyOS開發(fā)服務商認證

    近日,拓維信息及旗下雙雙通過華為HarmonyOS開發(fā)服務商認證,成為華為“鴻蒙服務商先鋒計劃”認證級伙伴。秉持共同發(fā)展、共創(chuàng)價值的合作理念,拓維信息、
    的頭像 發(fā)表于 03-29 08:13 ?535次閱讀
    拓維信息及旗下<b class='flag-5'>開</b><b class='flag-5'>鴻</b>智<b class='flag-5'>谷</b>同獲華為HarmonyOS<b class='flag-5'>開發(fā)</b>服務商認證

    與CSDN達成戰(zhàn)略合作,共建OpenHarmony人才計劃

    2024年3月19日,與中國專業(yè)開發(fā)者社區(qū)CSDN就共建OpenHarmony人才計劃達成戰(zhàn)略合作并舉辦發(fā)布儀式。
    的頭像 發(fā)表于 03-20 08:29 ?453次閱讀
    <b class='flag-5'>開</b><b class='flag-5'>鴻</b>智<b class='flag-5'>谷</b>與CSDN達成戰(zhàn)略合作,共建OpenHarmony人才計劃

    國內首批 | 多名講師獲“鴻蒙原生應用開發(fā)培訓講師”資格認證

    2023年3月4日-5日,鴻蒙生態(tài)服務(深圳)有限公司(以下簡稱“鴻蒙生態(tài)服務公司”)組織了國內首批“鴻蒙原生應用開發(fā)培訓講師”認證,
    的頭像 發(fā)表于 03-16 08:29 ?701次閱讀
    國內首批 | <b class='flag-5'>開</b><b class='flag-5'>鴻</b>智<b class='flag-5'>谷</b>多名講師獲“鴻蒙原生應用<b class='flag-5'>開發(fā)</b>培訓講師”資格認證
    主站蜘蛛池模板: 国内精品国内自产视频| 臀精插宫NP文| 7723手机游戏破解版下载| CHINA中国东北GURMA| 日本一二三区在线视频| 国产色婷亚洲99精品AV| 综合亚洲桃色第一影院| 日韩精品a在线视频| 国产午夜伦伦伦午夜伦| 2021国产精品久久久久精品免费网 | SM高H黄暴NP辣H调教性奴| 午夜看片a福利在线观看| 久久在精品线影院精品国产| 成年人视频免费在线观看| 亚洲区视频在线观看| 人妻中文字幕无码系列| 久久re热线视频国产| 动漫AV纯肉无码AV电影网| 在线观看免费亚洲| 我年轻漂亮的继坶2中字在线播放 我们中文在线观看免费完整版 | 国产精品无码无卡毛片不卡视| 最新无码国产在线视频9299| 谁有成人网站地址| 美女脱了内裤张开腿让男人桶到爽| 国产69精品久久久久乱码| 中文字幕无码亚洲视频| 小黄文纯肉污到你湿| 欧美精品熟妇乱| 久久精品动漫网一区二区| 丰满大爆乳波霸奶| 97人妻中文字幕免费视频| 亚洲国产日韩制服在线观看| 青娱乐极品视觉盛宴av| 老师xxxx69动漫| freehd另类xxxx喷水| 亚洲无遮挡无码A片在线| 色婷婷国产精品视频一区二区| 免费久久狼人香蕉网| 久久99精品国产免费观看| 国产精品一区二区四区| 成年人视频在线免费观看|