0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【HarmonyOS HiSpark Wi-Fi IoT 套件试用连载】5.OLED板模拟开关按键操作

开发板试用精选 来源:开发板试用 作者:电子发烧友论坛 2022-11-04 14:48 次阅读
本文来源电子发烧友社区,作者:hehung, 帖子地址:https://bbs.elecfans.com/jishu_2013902_1_1.html

玩玩OLED板子上面的两个模拟开关S1与S2。
首先查看原理图:
这两个按键是连接在GPIO5上面的,我在上一个帖子上面使用的User按键也是连接在这个端口的,GPIO是一个模拟端口使用了ADC2,通过这个模拟端口我们可以一次性读取三个按钮的值了。
从原理图可以看出,S1按钮的值就为参考电压*(1/(4.7+1)),S2按钮的值就为参考电压*((1+1)/(4.7+1+1)),具体数值可以写一个程序用串口读取读出的ADC数字来查看。
231428av83e08rqgaz896z.png 231429e7vkkzcsss6lqrs5.png 231612h2r5s5gdrr55rfzr.png


我最开始写了一个程序用来读取按下按键之后的ADC的电压。
按下User按键之后电压值为160,而且按下User+S2+S2都是这个值,因为User按钮没有接电阻,按下之后相当于电流没有从S1和S2流过。
单独按下S1的值大概为320。同时按下S1和S2的话,值也是S1的值320.因为电流也只会从S1流过,感觉这个模拟开关设计不是很好,应该多加两个电阻,让S1和S2同时按下的时候有不同的值,这样相当于多了一种按键情况。
单独按下S2的值为548.

我在写程序的时候发现ADC并不需要初始化,可以直接读取就行了。
所以设计程序如下:
创建任务
  1. static void KeyEntry(void)
  2. {
  3. osThreadAttr_t attr;
  4. // GpioInit();
  5. // IoSetFunc(WIFI_IOT_IO_NAME_GPIO_5, WIFI_IOT_IO_FUNC_GPIO_5_GPIO);
  6. // GpioSetDir(WIFI_IOT_IO_NAME_GPIO_5, WIFI_IOT_GPIO_DIR_IN);
  7. // AdcRead();
  8. attr.name = "KeyTask";
  9. attr.attr_bits = 0U;
  10. attr.cb_mem = NULL;
  11. attr.cb_size = 0U;
  12. attr.stack_mem = NULL;
  13. attr.stack_size = KEY_TASK_STACK_SIZE;
  14. attr.priority = KEY_TASK_PRIO;
  15. if (osThreadNew((osThreadFunc_t)KeyTask, NULL, &attr) == NULL) {
  16. printf("[KeyTask] Falied to create KeyTask!n");
  17. }
  18. }
  19. SYS_RUN(KeyEntry);
复制代码


模拟开关值读取:
  1. static void *KeyTask(const char *arg)
    {
    (void)arg;
hi_u16 Key_adc_value = 0u;
hi_u32 ret = 0;

  • while (1) {
    ret = hi_adc_read((hi_adc_channel_index)HI_ADC_CHANNEL_2, &Key_adc_value,
    HI_ADC_EQU_MODEL_1, HI_ADC_CUR_BAIS_DEFAULT, 0);
    if (ret != HI_ERR_SUCCESS) {
    printf("ADC Read Failn");
    }
    else
    {
    // printf("ADC value = %d", Key_adc_value);
    }
  • /*User 按键ADC值读出来大概为116*/
    /*S1 按键ADC读出来大概为320*/
    /*S2 按键ADC读出来大概为548*/
    if(Key_adc_value <= 200)
    {
    printf("User key pressedn");
    }
    else if(Key_adc_value <= 400)
    {
    printf("User S1 pressedn");
    }
    else if(Key_adc_value <= 600)
    {
    printf("User S2 pressedn");
    }
    else
    {
    }
    usleep(KEY_INTERVAL_TIME_US);
    }
  • return NULL;
    }
复制代码

测试效果如下:
233032pnq3oolco33cuqtc.png
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • wi-fi
    +关注

    关注

    14

    文章

    2113

    浏览量

    124331
  • HarmonyOS
    +关注

    关注

    79

    文章

    1967

    浏览量

    30027
  • HiSpark
    +关注

    关注

    1

    文章

    156

    浏览量

    6904
收藏 人收藏

    评论

    相关推荐

    Wi-Fi 8要来了!未来Wi-Fi技术演进方向揭秘

    产品销售中,虽然Wi-Fi 7产品的销量份额快速从年初的个位数百分比增长至14%,但Wi-Fi 6产品的销量份额依然稳定在60%左右。如果从存量设备来看,那么Wi-Fi 7路由器的占比将远远小于这个数。   智能手机等终端设备已
    的头像 发表于 11-24 03:14 813次阅读
    <b class='flag-5'>Wi-Fi</b> 8要来了!未来<b class='flag-5'>Wi-Fi</b>技术演进方向揭秘

    Wi-Fi 7与Wi-Fi 6E有什么区别

    也许很多人还在考虑是否要将使用的Wi-Fi设备升级到Wi-Fi 6或Wi-Fi 6E,而这些标准的继任者却已经开始“登堂入室”了。Wi-Fi 7是新一代
    的头像 发表于 11-07 11:38 513次阅读

    未来的Wi-Fi路由器

    厂家加入开始杀价,Wi-Fi FEM由于厂家众多,价格一降再降,直接杀到成本价以下,DC-DC电源芯片也好不到哪里去,供应商的上市年度报和季度报也是不堪入眼。 除了跟着主芯片从Wi-Fi4升级到Wi-Fi5,再从
    的头像 发表于 06-20 15:32 387次阅读

    DA16200 超低功耗 Wi-Fi 模块开发套件 Pro数据手册

    电子发烧友网站提供《DA16200 超低功耗 Wi-Fi 模块开发套件 Pro数据手册.rar》资料免费下载
    发表于 05-30 17:53 1次下载
    DA16200 超低功耗 <b class='flag-5'>Wi-Fi</b> 模块开发<b class='flag-5'>套件</b> Pro数据手册

    DA16200 超低功耗 Wi-Fi 模块开发套件数据手册

    电子发烧友网站提供《DA16200 超低功耗 Wi-Fi 模块开发套件数据手册.rar》资料免费下载
    发表于 05-30 17:13 0次下载
    DA16200 超低功耗 <b class='flag-5'>Wi-Fi</b> 模块开发<b class='flag-5'>套件</b>数据手册

    华为获得全球首个国际Wi-Fi联盟WFA企业级Wi-Fi 7认证!

    Wi-Fi联盟已发布Wi-Fi 7认证标准,华为是第一批送测厂商,获得业界首个企业级Wi-Fi 7 的Wi-Fi联盟官方认证。
    的头像 发表于 04-28 10:17 656次阅读
    华为获得全球首个国际<b class='flag-5'>Wi-Fi</b>联盟WFA企业级<b class='flag-5'>Wi-Fi</b> 7认证!

    验证物联网Wi-Fi HaLow用例的MM6108-EKH08开发套件来啦

    验证物联网Wi-Fi HaLow用例的MM6108-EKH08开发套件来啦 MM6108-EKH08开发套件专为验证物联网Wi-Fi HaLow用例而设计。该
    的头像 发表于 04-11 12:01 1664次阅读
    验证物联网<b class='flag-5'>Wi-Fi</b> HaLow用例的MM6108-EKH08开发<b class='flag-5'>套件</b>来啦

    Wi-Fi 7与Wi-Fi 6的相关知识科普

    科普:Wi-Fi 7 vs. Wi-Fi 6,青出于蓝
    的头像 发表于 03-12 10:59 695次阅读
    <b class='flag-5'>Wi-Fi</b> 7与<b class='flag-5'>Wi-Fi</b> 6的相关知识科普

    Wi-Fi的诞生与发展

    5GHz两个频段,承载着不断增长的网络需求。ABIResearch显示,2022年Wi-Fi上传流量激增80%,Wi-Fi数据流量已超过蜂窝流量,且成为流量增量贡
    的头像 发表于 03-07 08:26 1137次阅读
    <b class='flag-5'>Wi-Fi</b>的诞生与发展

    Wi-Fi HaLow和传统Wi-Fi的区别

    Wi-Fi HaLow和传统Wi-Fi的区别  Wi-Fi是一种无线网络技术,可以连接到互联网或局域网,为用户提供无线上网的便利。随着科技的发展和互联网的普及,Wi-Fi也在不断演进和
    的头像 发表于 02-02 15:28 1121次阅读

    康普携手Wi-Fi联盟,RUCKUS Wi-Fi 7系列接入点成Wi-Fi

     康普高级副总裁兼网络、智能蜂窝和安全解决方案总裁Bart Giordano对此表示: “我们非常荣幸能与Wi-Fi Alliance形成长期合作伙伴关系,将我们的RUCKUS Wi-Fi 7 接入点平台作为Wi-Fi CERT
    的头像 发表于 01-23 14:10 707次阅读

    BT Wi-Fi模式是否可以通过ModustoolBox对套件进行编程来实现?

    想配置用于分析 CYW43439 的 CY8CPROTO-062S2-43439 原型开发套件。 浏览文档我无法弄清楚如何在不同的 Wi-Fi 和蓝牙模式(电源模式、连接模式等)下配置套件。 在
    发表于 01-22 06:19

    MediaTek携手Wi-Fi联盟,推动Wi-Fi 7无线连接技术的广泛应用

    对此,Wi-Fi联盟的总裁兼首席执行官 Kevin Robinson表示:“过去二十年来,MediaTek与Wi-Fi联盟携手合作,成功地将互通性优异、性能可靠的芯片组解决方案推向市场。我们非常高兴MediaTek能加入我们的Wi-Fi
    的头像 发表于 01-10 13:52 649次阅读

    Wi-Fi 6和Wi-Fi 5之间有哪些区别呢?

    Wi-Fi 6和Wi-Fi 5之间有哪些区别呢? Wi-Fi 6和Wi-Fi 5是无线局域网标准
    的头像 发表于 12-09 16:09 2247次阅读

    紫光展锐Wi-Fi 6成功通过Wi-Fi联盟认证

    近日,紫光展锐Wi-Fi 6产品成功通过Wi-Fi联盟 (简称“WFA”) Qualified Solution 认证,并支持Wi-Fi 6 Release 2,标志着紫光展锐自研Wi-Fi
    的头像 发表于 11-30 13:30 770次阅读