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

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

3天内不再提示

【HarmonyOS HiSpark Wi-Fi IoT 套件试用连载】小白写个入门程序——按键控制LED灯的亮灭(查询方式)

开发板试用精选 来源:开发板试用 作者:电子发烧友论坛 2022-11-01 15:43 次阅读
本文来源电子发烧友社区,作者:abcd7471, 帖子地址:https://bbs.elecfans.com/jishu_2033483_1_1.html

以前只是简单的玩过51单片机,现在直接玩鸿蒙开发,处处碰壁、踩坑无数!根据官网教程搭好环境之后,官网的示例程序编译成功并且在开发板上运行了,然后就差点没有下文了,因为不知道接下来要怎么玩,如何玩?然后大量查阅资料,查阅C语言教程,补充C语言知识。现在来写个入门程序:用一个按键控制LED灯的亮灭来跟大家分享一下,希望对像我这样的小白有帮助,由于水平有限,难免有错误或不知足之处,希望各位大佬们指正。
以前玩51单片机的朋友们都知道要用一个按键来控制LED灯的亮灭如何实现,比如说stc15系列的51单片机,LED一端接在P09的IO脚上,另一端经过一个电阻接到VCC,按键一端接到P05的IO脚,另一端接GND,用查询方式检测按键状态,功能实现如下:
  1. #include
  2. int main
  3. {
  4. while(1)
  5. {
  6. if(!P05) P09 = 0;
  7. else P09 = 1;
  8. }
  9. }
复制代码

由于STC15系列的51单片机和传统的51单片机的IO上电后默认处于弱上拉状态,因此仅仅需要上面几行代码就可以实现了。现在玩的是海思Hi3861芯片和鸿蒙OS这两样东西(暂且称为东西),这两样东西要实现像上面STC15单片机的这个功能,要如何实现呢?这个问题也是我学习鸿蒙开发入门的一个思路。
通过查开发板的原理图可以知道,LED1一端接到Hi3861芯片名为GPIO09的pin脚,另一端经过一个330欧电阻之后接到3.3V,按键S1一端接到芯片名为GPIO05的pin脚,另一端接到GND。要实现上面那个功能需要走的流程大概如下:
1、GPIO初始化
2、设置GPIO的复用功能,比如说某些GPIO脚有I2CUARTADC等功能,要设置成GPIO功能

3、设置GPIO的方向是输入或输出
4、设置GPIO管脚上下拉状态

主要实现代码如下:
  1. GpioInit();
  2. IoSetFunc(WIFI_IOT_IO_NAME_GPIO_9, WIFI_IOT_IO_FUNC_GPIO_9_GPIO);
  3. IoSetFunc(WIFI_IOT_IO_NAME_GPIO_5, WIFI_IOT_IO_FUNC_GPIO_5_GPIO);
  4. GpioSetDir(WIFI_IOT_IO_NAME_GPIO_9, WIFI_IOT_GPIO_DIR_OUT);
  5. GpioSetDir(WIFI_IOT_IO_NAME_GPIO_5, WIFI_IOT_GPIO_DIR_IN);
  6. IoSetPull(WIFI_IOT_IO_NAME_GPIO_5, WIFI_IOT_IO_PULL_UP);
复制代码
然后弄个while(1)循环,不断查询GPIO状态,
  1. while (1)
  2. {
  3. GpioGetinputVal(WIFI_IOT_GPIO_IDX_5, &S2_status);
  4. if(!S2_status)
  5. {
  6. GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_9, 0);
  7. }
  8. else GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_9, 1);
  9. }
复制代码
具体完整代码已上传到附件中。有需要的朋友们可以下载附件解压后将文件夹复制到指定位置,如图所示
125432i7ti39lv3t11tdzz.png


两个重要的BUILD.gn文件,如图所示:

130610k2tyt42f7y8ju4wg.png

130619hf5gis34nnri5hn5.png

程序运行效果如视频所示:

项目源代码及下载地址,见作者原帖子内容

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

    关注

    14

    文章

    2098

    浏览量

    124260
  • HarmonyOS
    +关注

    关注

    79

    文章

    1966

    浏览量

    29972
  • HiSpark
    +关注

    关注

    1

    文章

    156

    浏览量

    6897
收藏 人收藏

    评论

    相关推荐

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

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

    【xG24 Matter开发套件试用体验】7-按键点亮LED

    1介绍 之前已经点亮LED,并能通过延时实现LED闪烁,这里实现通过按左键控制LED,按下
    发表于 08-03 14:54

    IR900 Wi-Fi联网的配置过程

    , 通过SSID扫描可以查看;输入密码,点击保存; 在SSID扫描页面中查看是否连接成功, 如果没有请检查认证方式、加密方式、密码是否输入正确; Wi-Fi扫描显示“已连接”,进入“快速向导-新建WAN
    发表于 07-25 06:09

    请问怎么用按键控制1602中的5*8点阵及加减?

    请问怎么用按键控制1602中的5*8点阵及加减
    发表于 05-07 08:04

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

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

    在测试STM328S103K3T6的按键控制时,有些会自动,为什么?

    在测试STM328S103K3T6的按键控制时,有些会自动,这是什么原因呢。
    发表于 04-03 07:15

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

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

    Wi-Fi的诞生与发展

    短距离无线通信技术有Wi-Fi、ZigBee、蓝牙以及Z-Wave,今天我们先揭开Wi-Fi的神秘面纱。Chrent短距离无线通信技术——Wi-Fi过去的20多年,Wi-Fi靠着仅有的
    的头像 发表于 03-07 08:26 1106次阅读
    <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 1072次阅读

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

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

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

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

    STM32按键控制LED

    使用一个按键控制LED按键按下时LED亮起,按键
    的头像 发表于 12-11 14:19 3521次阅读
    STM32<b class='flag-5'>按键控制</b><b class='flag-5'>LED</b>的<b class='flag-5'>亮</b><b class='flag-5'>灭</b>

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

    Wi-Fi 6和Wi-Fi 5之间有哪些区别呢? Wi-Fi 6和Wi-Fi 5是无线局域网标准的两个版本,它们之间存在很多区别。Wi-Fi
    的头像 发表于 12-09 16:09 2095次阅读

    使用STM32按键控制LED

    本次实验所用到的Simulink模型如图5.1所示,实验现象: 按键按下、松开LED循环实现翻转亮效果,当按键按下时,产生下降沿脉冲,通过一个计数器对下降沿脉冲进行0~1循环计数,计
    的头像 发表于 11-29 16:22 2413次阅读
    使用STM32<b class='flag-5'>按键控制</b><b class='flag-5'>LED</b><b class='flag-5'>亮</b><b class='flag-5'>灭</b>

    什么是2.4 GHz Wi-Fi? 如何提升2.4 GHz Wi-Fi的性能?

    什么是2.4 GHz Wi-Fi?2.4 GHz Wi-Fi的优势 2.4 GHz Wi-Fi的劣势 如何提升2.4 GHz Wi-Fi的性能?2.4 GHz和5 GHz
    的头像 发表于 11-27 17:09 2259次阅读