日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【HarmonyOS HiSpark Wi-Fi IoT 套件試用連載】更加優(yōu)雅的使用OLED板的按鍵

開(kāi)發(fā)板試用精選 ? 來(lái)源:開(kāi)發(fā)板試用 ? 作者:電子發(fā)燒友論壇 ? 2022-11-04 16:51 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文來(lái)源電子發(fā)燒友社區(qū),作者:杜瀟泊, 帖子地址:https://bbs.elecfans.com/jishu_2009065_1_1.html

開(kāi)發(fā)板OLED板下面有兩個(gè)按鍵,上手開(kāi)發(fā)板第一件事肯定是調(diào)試輸入輸出手段。串口幾乎不需要調(diào)試什么,上手就能用。這個(gè)按鍵就成了第一個(gè)下手的目標(biāo)。
起初沒(méi)把這倆按鍵當(dāng)回事,以為只是直接接在GPIO上的,頂多設(shè)置一下觸發(fā)點(diǎn)平就行了。拿到原理圖才發(fā)現(xiàn),這倆按鍵居然是這樣接的。
180048xlfdlcgqu5ffquq4.png
也就是說(shuō)必須使用ADC才能確認(rèn)按下的是哪一個(gè)鍵。開(kāi)發(fā)板官方給出了OLED板的demo,其中也包含了對(duì)屏幕下面兩個(gè)按鍵的使用。但是查看代碼發(fā)現(xiàn),是使用死循環(huán)不斷進(jìn)行ADC轉(zhuǎn)換來(lái)捕捉按鍵操作的。這樣做會(huì)導(dǎo)致系統(tǒng)功耗上升,并且會(huì)持續(xù)占用CPU。

其實(shí)我們可以更加優(yōu)雅的使用這倆按鍵,使用按鍵終端觸發(fā)按鍵事件,再由按鍵線(xiàn)程完成按鍵事件的處理。這樣做在平時(shí)不按按鍵時(shí),系統(tǒng)CPU處于IDLE狀態(tài)、ADC也處于停止?fàn)顟B(tài)。功耗、CPU都能降下來(lái)。甚至你可以配置進(jìn)入低功耗模式。

代碼不多
// 全局信號(hào)量,記錄按鍵事件
osSemaphoreId_t g_keySem;
void KeyPressed(char *arg) {
(void)arg;
//釋放一個(gè)信號(hào)量,注意這里是中斷上下文,最好別調(diào)用太多東西
osSemaphoreRelease(g_keySem);
}
void handlePressKeyTask(void* arg) {
(void)arg;
while(true) {
// 這里去消費(fèi)按鍵事件
osStatus_t status = osSemaphoreAcquire(g_keySem,65535);
if(status != 0) {
continue;
}
while(true) {
unsigned short data = 0;
AdcRead(ANALOG_KEY_CHAN_NAME, &data, WIFI_IOT_ADC_EQU_MODEL_4, WIFI_IOT_ADC_CUR_BAIS_DEFAULT, 0);
float voltage = (float)data * 1.8 * 4 / 4096;
if(voltage < 0.8f) {
ssd1306_Fill(Black);
ssd1306_SetCursor(0, 0);
ssd1306_DrawString("Key1 Pressed!", Font_7x10, White);
ssd1306_UpdateScreen();
} else if(voltage < 2.0f) {
ssd1306_Fill(Black);
ssd1306_SetCursor(0, 0);
ssd1306_DrawString("Key2 Pressed!", Font_7x10, White);
ssd1306_UpdateScreen();
} else {
ssd1306_Fill(Black);
ssd1306_SetCursor(0, 0);
ssd1306_DrawString("Released!", Font_7x10, White);
ssd1306_UpdateScreen();
break;
}
}
}
}
void initKey() {
// 端口設(shè)置為GPIO
IoSetFunc(WIFI_IOT_IO_NAME_GPIO_5, WIFI_IOT_IO_FUNC_GPIO_5_GPIO);
// 設(shè)置為輸入
GpioSetDir(WIFI_IOT_IO_NAME_GPIO_5, WIFI_IOT_GPIO_DIR_IN);
// 設(shè)置在下降沿中斷。(其實(shí)我想設(shè)置下降沿和上升沿中斷的,然而接口居然不允許)
osSemaphoreAttr_t semAttr = {
.name = "KeyPressSemi",
.attr_bits = 0,
.cb_mem = NULL,
.cb_size = 0
};
g_keySem = osSemaphoreNew(8, 0, &semAttr);
GpioRegisterIsrFunc(WIFI_IOT_IO_NAME_GPIO_5, WIFI_IOT_INT_TYPE_EDGE, WIFI_IOT_GPIO_EDGE_FALL_LEVEL_LOW, KeyPressed, NULL);
// 這里啟動(dòng)一個(gè)task處理按鍵事件
osThreadAttr_t attr;
attr.name = "KeyHandleTask";
attr.attr_bits = 0U;
attr.cb_mem = NULL;
attr.cb_size = 0U;
attr.stack_mem = NULL;
attr.stack_size = 2048;
attr.priority = osPriorityNormal;
if (osThreadNew(handlePressKeyTask, NULL, &attr) == NULL) {
printf("[%s]Falied to create KeyHandleTask!n", __func__);
}
}

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • wi-fi
    +關(guān)注

    關(guān)注

    15

    文章

    2468

    瀏覽量

    130085
  • HarmonyOS
    +關(guān)注

    關(guān)注

    80

    文章

    2157

    瀏覽量

    36325
  • HiSpark
    +關(guān)注

    關(guān)注

    1

    文章

    156

    瀏覽量

    7801
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    技術(shù)資訊 I Wi-Fi 模塊設(shè)計(jì)

    本文要點(diǎn)Wi-Fi模塊設(shè)計(jì)旨在打造一套緊湊且高效的硬件和軟件解決方案,使設(shè)備能夠通過(guò)Wi-Fi網(wǎng)絡(luò)實(shí)現(xiàn)通信。Wi-Fi模塊設(shè)計(jì)是一個(gè)復(fù)雜的過(guò)程,要求研發(fā)人員兼具硬件與軟件工程方面的專(zhuān)業(yè)知識(shí)
    的頭像 發(fā)表于 02-27 17:12 ?914次閱讀
    技術(shù)資訊 I <b class='flag-5'>Wi-Fi</b> 模塊設(shè)計(jì)

    Wi-Fi:無(wú)線(xiàn)連接的全球通用語(yǔ)

    一、什么是Wi-FiWi-FiWi-Fi聯(lián)盟制造商的商標(biāo)認(rèn)證,是基于IEEE 802.11標(biāo)準(zhǔn)的無(wú)線(xiàn)局域網(wǎng)技術(shù)。它允許電子設(shè)備在特定范圍內(nèi)無(wú)線(xiàn)接入網(wǎng)絡(luò),實(shí)現(xiàn)高速數(shù)據(jù)交換與互聯(lián)網(wǎng)訪問(wèn),已成為
    發(fā)表于 01-07 09:49

    Nordic發(fā)布nRF7002 EBII 開(kāi)發(fā), 支持Wi-Fi 6, 解鎖nRF54L新玩法

    Wi-Fi 6 功能,幫助開(kāi)發(fā)人員創(chuàng)建高性能、高能效的Wi-Fi 6 物聯(lián)網(wǎng)解決方案。 基于 Nordic 的 nRF7002 Wi-Fi 協(xié)同 IC,nRF7002 EBII幫助 采用
    發(fā)表于 12-10 11:58

    Wi-Fi模塊選型指南 | 低功耗藍(lán)牙/Wi-Fi 6模塊推薦 | 物聯(lián)網(wǎng)設(shè)備集成攻略

    物聯(lián)網(wǎng)的快速發(fā)展,Wi-Fi技術(shù)的成熟的情況下,越來(lái)越多的場(chǎng)景需要用到Wi-Fi來(lái)無(wú)線(xiàn)傳輸數(shù)據(jù),尤其是移動(dòng)設(shè)備中,怎么再設(shè)備中選擇合適的Wi-Fi模塊呢?下面我們來(lái)介紹下Wi-Fi模塊
    的頭像 發(fā)表于 12-09 11:27 ?1389次閱讀
    <b class='flag-5'>Wi-Fi</b>模塊選型指南 | 低功耗藍(lán)牙/<b class='flag-5'>Wi-Fi</b> 6模塊推薦 | 物聯(lián)網(wǎng)設(shè)備集成攻略

    RK3506工控核心Wi-Fi模組性能測(cè)試報(bào)告

    RK3506工控核心Wi-Fi模組性能測(cè)試報(bào)告測(cè)試概述本次測(cè)試對(duì)比了三種不同WiFi模組在2.4GHz和5GHz頻段的網(wǎng)絡(luò)吞吐量性能,使用iperf3工具進(jìn)行30秒的多線(xiàn)程傳輸測(cè)試?;谖錆h萬(wàn)象
    的頭像 發(fā)表于 10-14 17:09 ?3100次閱讀
    RK3506工控<b class='flag-5'>板</b>核心<b class='flag-5'>板</b><b class='flag-5'>Wi-Fi</b>模組性能測(cè)試報(bào)告

    ?Microchip WILCS02 Wi-Fi?模塊開(kāi)發(fā)技術(shù)解析與應(yīng)用指南

    Microchip Technology WILCS02 Wi-Fi^?^ 鏈路控制器SD是一款安全數(shù)字 (SD) 卡接口,支持2.4GHz IEEE^?^ 802.11 b/g/n標(biāo)準(zhǔn)。該
    的頭像 發(fā)表于 10-06 15:54 ?1394次閱讀
    ?Microchip WILCS02 <b class='flag-5'>Wi-Fi</b>?模塊開(kāi)發(fā)<b class='flag-5'>板</b>技術(shù)解析與應(yīng)用指南

    淺談Wi-Fi 6E與Wi-Fi 7的關(guān)鍵器件——BAW濾波器新技術(shù)

    作者: Qorvo 亞太區(qū)無(wú)線(xiàn)連接事業(yè)部高級(jí)行銷(xiāo)經(jīng)理林健富 ? 2020年1月,Wi-Fi聯(lián)盟正式宣布開(kāi)放6GHz頻段(5925MHz-7125MHz),并將其命名為Wi-Fi 6E。2020年4月
    發(fā)表于 09-19 18:29 ?2515次閱讀
    淺談<b class='flag-5'>Wi-Fi</b> 6E與<b class='flag-5'>Wi-Fi</b> 7的關(guān)鍵器件——BAW濾波器新技術(shù)

    如何在 NuMaker-IoT-M467 上使用 Arduino IDE 控制 Wi-Fi 模塊?

    在NuMaker開(kāi)發(fā)上,有一個(gè)ESP-12F Wi-Fi模塊;但是,Arduino IDE 中的 NuMaker UNO 包不提供該模塊的相關(guān)控制。如果您希望在 Arduino IDE 中控制此模塊,您應(yīng)該如何進(jìn)行?
    發(fā)表于 09-04 08:28

    如何更新 NuMaker IoT 上的 Wi-Fi 模塊固件?

    更新 NuMaker IoT 上的 Wi-Fi 模塊固件
    發(fā)表于 09-04 08:28

    基于 SSID 的 Wi-Fi 定位:與其他定位服務(wù)的性能比較

    隨著 nRF7000 Wi-Fi 協(xié)同 IC 的推出,我們現(xiàn)在可以提供具有 Wi-Fi、蜂窩物聯(lián)網(wǎng)和 GNSS 功能的完整硅到云定位解決方案。nRF7000 針對(duì) Wi-Fi 網(wǎng)絡(luò)掃描進(jìn)行了優(yōu)化
    發(fā)表于 08-31 21:01

    LitePoint Wi-Fi測(cè)試軟件減輕客戶(hù)設(shè)計(jì)負(fù)擔(dān)

    Wi-Fi 7于一年多前獲得Wi-Fi聯(lián)盟認(rèn)證以來(lái),作為最新一代通信技術(shù),Wi-Fi正逐步成為用戶(hù)實(shí)現(xiàn)無(wú)所不在無(wú)線(xiàn)連接的新選擇。隨著每一代Wi-Fi信號(hào)復(fù)雜性的提升,建議將硬件測(cè)試納
    的頭像 發(fā)表于 08-06 15:34 ?1426次閱讀
    LitePoint <b class='flag-5'>Wi-Fi</b>測(cè)試軟件減輕客戶(hù)設(shè)計(jì)負(fù)擔(dān)

    有沒(méi)有什么修復(fù)方法可以確保 AP 模式下的 Wi-Fi 和 BLE 連接同時(shí)正常工作?

    我正在使用 CYBSYSKIT DEV 01 套件。我嘗試在 AP 模式下打開(kāi) Wi-Fi 并宣傳 BLE。我可以宣傳 SoftAP 和 BLE。但是,我無(wú)法從中央設(shè)備連接到 BLE。它可以立即連接并斷開(kāi)連接。有沒(méi)有什么修復(fù)方法可以確保 AP 模式下的
    發(fā)表于 07-17 06:13

    如何選擇合適的芯科科技Wi-Fi開(kāi)發(fā)

    您正在尋找適用于超低功耗物聯(lián)網(wǎng)應(yīng)用項(xiàng)目的Wi-Fi 開(kāi)發(fā)嗎?本文將介紹Silicon Labs(芯科科技)推出的所有SiWx917 Wi-Fi 6和低功耗藍(lán)牙5.4解決方案的Wi-Fi
    的頭像 發(fā)表于 07-09 09:15 ?3047次閱讀

    科普|公司的Wi-Fi,為什么這么慢?

    大家在公司上班,經(jīng)常會(huì)使用到Wi-Fi。最近這幾年,隨著時(shí)代的發(fā)展,高清視頻會(huì)議等大帶寬網(wǎng)絡(luò)應(yīng)用越來(lái)越普遍。而公司的網(wǎng)絡(luò),卻非常不給力,頻繁卡頓,嚴(yán)重影響使用體驗(yàn)。哪怕IT的同事已經(jīng)把網(wǎng)絡(luò)優(yōu)化得很
    的頭像 發(fā)表于 06-20 06:06 ?1852次閱讀
    科普|公司的<b class='flag-5'>Wi-Fi</b>,為什么這么慢?

    Wi-Fi 8:開(kāi)啟極高可靠性 (UHR) 連接的新紀(jì)元——1

    英國(guó)作家狄更斯在《雙城記》的開(kāi)頭寫(xiě)道:“這是最好的時(shí)代,也是最壞的時(shí)代?!?這句話(huà)若套用在現(xiàn)今Wi-Fi 的市場(chǎng)現(xiàn)狀,何嘗不是驚人的相似? 怎么說(shuō)呢?Wi-Fi 從被發(fā)明至今已經(jīng)經(jīng)過(guò)了20多年的迭代
    發(fā)表于 06-13 11:09
    文山县| 全州县| 枣庄市| 湘潭市| 南郑县| 西昌市| 盐山县| 二手房| 尚义县| 铜山县| 出国| 肃宁县| 盐城市| 涿鹿县| 呼伦贝尔市| 重庆市| 渭南市| 华容县| 永嘉县| 福安市| 屯留县| 张家港市| 黔南| 颍上县| 芦山县| 敦化市| 嘉义县| 柞水县| 车致| 虎林市| 宾川县| 喀什市| 扬中市| 云霄县| 大荔县| 渝中区| 温州市| 永登县| 中方县| 盐亭县| 沭阳县|