chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

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

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

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

代碼不多
// 全局信號量,記錄按鍵事件
osSemaphoreId_t g_keySem;
void KeyPressed(char *arg) {
(void)arg;
//釋放一個信號量,注意這里是中斷上下文,最好別調(diào)用太多東西
osSemaphoreRelease(g_keySem);
}
void handlePressKeyTask(void* arg) {
(void)arg;
while(true) {
// 這里去消費按鍵事件
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() {
// 端口設置為GPIO
IoSetFunc(WIFI_IOT_IO_NAME_GPIO_5, WIFI_IOT_IO_FUNC_GPIO_5_GPIO);
// 設置為輸入
GpioSetDir(WIFI_IOT_IO_NAME_GPIO_5, WIFI_IOT_GPIO_DIR_IN);
// 設置在下降沿中斷。(其實我想設置下降沿和上升沿中斷的,然而接口居然不允許)
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);
// 這里啟動一個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)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • wi-fi
    +關注

    關注

    14

    文章

    2259

    瀏覽量

    127031
  • HarmonyOS
    +關注

    關注

    80

    文章

    2126

    瀏覽量

    33099
  • HiSpark
    +關注

    關注

    1

    文章

    156

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Wi-Fi 8要來了!未來Wi-Fi技術演進方向揭秘

    產(chǎn)品銷售中,雖然Wi-Fi 7產(chǎn)品的銷量份額快速從年初的個位數(shù)百分比增長至14%,但Wi-Fi 6產(chǎn)品的銷量份額依然穩(wěn)定在60%左右。如果從存量設備來看,那么Wi-Fi 7路由器的占比將遠遠小于這個數(shù)。 ? 智能手機等終端設備已
    的頭像 發(fā)表于 11-24 03:14 ?3861次閱讀
    <b class='flag-5'>Wi-Fi</b> 8要來了!未來<b class='flag-5'>Wi-Fi</b>技術演進方向揭秘

    有沒有什么修復方法可以確保 AP 模式下的 Wi-Fi 和 BLE 連接同時正常工作?

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

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

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

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

    英國作家狄更斯在《雙城記》的開頭寫道:“這是最好的時代,也是最壞的時代?!?這句話若套用在現(xiàn)今Wi-Fi 的市場現(xiàn)狀,何嘗不是驚人的相似? 怎么說呢?Wi-Fi 從被發(fā)明至今已經(jīng)經(jīng)過了20多年的迭代
    發(fā)表于 06-13 11:09

    Wi-Fi HaLow如何突破傳統(tǒng)Wi-Fi性能瓶頸?

    視頻推薦在萬物互聯(lián)的時代,傳統(tǒng)Wi-Fi在覆蓋范圍、功耗、連接數(shù)上漸顯不足。而Wi-FiHaLow的誕生,正在用黑科技打破傳統(tǒng)Wi-Fi的性能瓶頸!今天,我們一起來探究Wi-FiHaL
    的頭像 發(fā)表于 04-22 11:38 ?365次閱讀
    <b class='flag-5'>Wi-Fi</b> HaLow如何突破傳統(tǒng)<b class='flag-5'>Wi-Fi</b>性能瓶頸?

    基于 Wi-Fi 的定位服務

    以下捕獲使用 location_wifi_get 函數(shù)請求 Wi-Fi 定位服務。該事件的總功耗為 125.85mC,日志顯示精確度為 30.0m。 Got location: method
    發(fā)表于 04-17 15:16

    nRF Cloud Wi-Fi 定位服務

    、Predictive-GPS、Single-Cell、Multi-Cell 和 Wi-Fi 定位。通過利用 nRF Cloud 的優(yōu)化定位算法,基于 Nordic SoC 和 模組的產(chǎn)品可在定位用例
    發(fā)表于 04-17 15:07

    Wi-Fi 定位服務

    Wi-Fi 是一種著名的無線網(wǎng)絡技術,用于設備的局域網(wǎng)和互聯(lián)網(wǎng)接入。Wi-Fi 通過 Wi-Fi 網(wǎng)絡為家庭、辦公室和學校等環(huán)境提供便捷的無線互聯(lián)網(wǎng)接入服務。 Wi-Fi 定位是一種
    發(fā)表于 04-17 15:01

    如何為驅(qū)動添加Wi-Fi功能

    為驅(qū)動添加Wi-Fi功能,可以通過硬件和軟件兩種途徑實現(xiàn)。
    的頭像 發(fā)表于 04-16 14:22 ?427次閱讀

    華為海思正式進入Wi-Fi FEM賽道?

    大家都知道了,2018年11 月離開銳迪科(RDA),前往福建晉江創(chuàng)立三伍微,專注于Wi-Fi射頻前端芯片,從路由器Wi-Fi FEM,到手機Wi-Fi FEM,再到IoT FEM全覆
    發(fā)表于 12-11 17:42

    摩爾斯微電子發(fā)布Wi-Fi HaLow評估套件,加速物聯(lián)網(wǎng)開發(fā)

    近日,全球領先的Wi-Fi HaLow解決方案提供商摩爾斯微電子正式推出一款開創(chuàng)性的評估套件——MM6108-EKH05。這款完全整合的開發(fā)平臺,旨在推動各行業(yè)物聯(lián)網(wǎng)解決方案的快速發(fā)展
    的頭像 發(fā)表于 12-11 13:40 ?696次閱讀

    Wi-Fi 4到Wi-Fi 7:網(wǎng)速飆升40倍的無線革命

    1 Wi-Fi技術的快速發(fā)展 每一代新的Wi-Fi協(xié)議發(fā)布,都會帶來更高的無線速率。 ? 從Wi-Fi 4到Wi-Fi 7:無線網(wǎng)絡技術顯著提升,實現(xiàn)了網(wǎng)速的巨大飛躍。 ? ?
    的頭像 發(fā)表于 12-09 10:10 ?1058次閱讀
    從<b class='flag-5'>Wi-Fi</b> 4到<b class='flag-5'>Wi-Fi</b> 7:網(wǎng)速飆升40倍的無線革命

    Wi-Fi 7有哪些底層技術優(yōu)勢

    您在多個Wi-Fi行業(yè)活動中代表LitePoint。Wi-Fi 7帶來了哪些新穎且有趣的特點?
    的頭像 發(fā)表于 11-15 15:27 ?1321次閱讀

    Wi-Fi 7與Wi-Fi 6E有什么區(qū)別

    也許很多人還在考慮是否要將使用的Wi-Fi設備升級到Wi-Fi 6或Wi-Fi 6E,而這些標準的繼任者卻已經(jīng)開始“登堂入室”了。Wi-Fi 7是新一代
    的頭像 發(fā)表于 11-07 11:38 ?3493次閱讀

    最典型的3家Wi-Fi Halow芯片企業(yè)

    Wi-Fi Halow是Wi-Fi聯(lián)盟推出的專門面向物聯(lián)網(wǎng)市場的標準。
    的頭像 發(fā)表于 08-30 09:58 ?3966次閱讀
    最典型的3家<b class='flag-5'>Wi-Fi</b> Halow芯片企業(yè)