电子产业一站式赋能平台

PCB联盟网

搜索
查看: 1464|回复: 0
收起左侧

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

[复制链接]

2607

主题

2607

帖子

7472

积分

高级会员

Rank: 5Rank: 5

积分
7472
发表于 2021-1-26 13:56:24 | 显示全部楼层 |阅读模式
【HarmonyOS HiSpark Wi-Fi IoT 套件试用连载】小白写个入门程序——按键控制LED灯的亮灭(查询方式),         以前只是简单的玩过51单片机,现在直接玩鸿蒙开发,处处碰壁、踩坑无数!根据官网教程搭好环境之后,官网的示例程序编译成功并且在开发板上运行了,然后就差点没有下文了,因为不知道接下来要怎么玩,如何玩?然后大量查阅资料,查阅C语言教程,补充C语言知识。现在来写个入门程序:用一个按键控制LED灯的亮灭来跟大家分享一下,希望对像我这样的小白有帮助,由于水平有限,难免有错误或不知足之处,希望各位大佬们指正。

        以前玩51单片机的朋友们都知道要用一个按键来控制LED灯的亮灭如何实现,比如说stc15系列的51单片机,LED一端接在P09的IO脚上,另一端经过一个电阻接到VCC,按键一端接到P05的IO脚,另一端接GND,用查询方式检测按键状态,功能实现如下:



  • #include<stc15.h>
      
  • int main
      
  • {
      
  •     while(1)
      
  •      {
      
  •     if(!P05) P09 = 0;
      
  •     else P09 = 1;
      
  •      }
      
  • }
      


复制代码

由于STC15系列的51单片机和传统的51单片机的IO上电后默认处于弱上拉状态,因此仅仅需要上面几行代码就可以实现了。现在玩的是海思Hi3861芯片和鸿蒙OS这两样东西(暂且称为东西),这两样东西要实现像上面STC15单片机的这个功能,要如何实现呢?这个问题也是我学习鸿蒙开发入门的一个思路。

      通过查开发板的原理图可以知道,LED1一端接到Hi3861芯片名为GPIO09的pin脚,另一端经过一个330欧电阻之后接到3.3V,按键S1一端接到芯片名为GPIO05的pin脚,另一端接到GND。要实现上面那个功能需要走的流程大概如下:

1、GPIO初始化

2、设置GPIO的复用功能,比如说某些GPIO脚有I2C、UART、ADC等功能,要设置成GPIO功能



3、设置GPIO的方向是输入或输出

4、设置GPIO管脚上下拉状态



主要实现代码如下:



  • GpioInit();
      
  •    IoSetFunc(WIFI_IOT_IO_NAME_GPIO_9, WIFI_IOT_IO_FUNC_GPIO_9_GPIO);
      
  •     IoSetFunc(WIFI_IOT_IO_NAME_GPIO_5, WIFI_IOT_IO_FUNC_GPIO_5_GPIO);
      
  •     GpioSetDir(WIFI_IOT_IO_NAME_GPIO_9, WIFI_IOT_GPIO_DIR_OUT);
      
  •     GpioSetDir(WIFI_IOT_IO_NAME_GPIO_5, WIFI_IOT_GPIO_DIR_IN);
      
  •     IoSetPull(WIFI_IOT_IO_NAME_GPIO_5, WIFI_IOT_IO_PULL_UP);

复制代码 然后弄个while(1)循环,不断查询GPIO状态,



  • while (1)
      
  •     {
      
  •         GpioGetinputVal(WIFI_IOT_GPIO_IDX_5, &S2_status);
      
  •         if(!S2_status)
      
  •         {
      
  •             GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_9, 0);
      
  •         }
      
  •         else GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_9, 1);
      
  •     }

复制代码 具体完整代码已上传到附件中。有需要的朋友们可以下载附件解压后将文件夹复制到指定位置,如图所示



2021-01-26_12-53.png (123.42 KB, 下载次数: 0)

下载附件  保存到相册  

1 小时前 上传





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





2021-01-26_13-05.png (148.99 KB, 下载次数: 0)

下载附件  保存到相册  

半小时前 上传





2021-01-26_13-05_1.png (125.35 KB, 下载次数: 0)

下载附件  保存到相册  

半小时前 上传



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

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表