4

HaaS100按键及LED使用介绍

 2 years ago
source link: https://blog.csdn.net/HaaSTech/article/details/111399872
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

HaaS100有2个按键及6个LED,如下图所示:

  

image.png

2个按键如上图所示,左边一个为复位键,按下后直接重启单板,软件无法控制。右边一个为功能键,可以通过软件代码自定义相关功能。

6个LED灯如上图所示,其中右1为电源灯,上电后自动亮起,软件无法控制。其余LED1到LED5,可以通过软件代码自定义。

2、按键软件控制方法

2.1、按键驱动接口

按键驱动的代码在platform/board/haas100/drivers/key.c中

接口在platform/board/haas100/drivers/key.h中。

目前提供的接口如下:

通过key_init接口,可以设置按键短按及长按的触发时间,同时为短按及长按动作挂接自定义回调函数。

注意:短按时间为最长时间,默认2000ms,即按键时间短于2000ms认为是短按,触发短按回调函数  short_press_handler;

长按时间为最短时间,默认5000ms,即按键时间超过5000ms认为是长按,触发长按回调函数long_press_handler。

2.2 按键功能示例

2.2.1 示例代码        

以实现1秒短按打印"key short press!!!",3秒长按打印"key long press!!!"为例,示例代码如下:

2.2.2 开发验证

1)下载代码

执行下面命令下载haas代码

git clone https://gitee.com/alios-things/AliOS-Things.git -b dev_3.1.0_haas

2) 添加按键应用代码

将示例代码key_short_pressed、key_long_pressed、key_test_init拷贝到application/example/helloworld_demo/appdemo.c中,然后在application_start中调用key_test_init,并包含头文件"key.h",完整代码如下:

3) 编译代码,命令如下:

4) 烧录版本

   完成后,烧录编译出来的版本到HaaS100上,烧录方法参见HaaS100快速开始

   烧录完后,按reset键重启HaaS100板子。

5) 验证

  板子启动后,短按功能键(按住按键时间少于1秒就松开),观察串口,应该打印出 key short press!!!

  长按功能键(按住功能键超过3秒再松开),观察串口,应该打印出 key long press!!!

3、LED软件控制方法

3.1、LED驱动接口

LED驱动代码在platform/board/haas100/drivers/led.c中。

接口在platform/board/haas100/drivers/led.h中。

目前提供的接口如下:

led_switch接口的第一个参数为LED的id号,第二个参数表示开灯还是关灯。

LED的id编号范围为1到5,编号与灯的对应关系见简介中图示。

3.2、LED功能示例

3.2.1 示例代码

实现5个LED灯循环亮灭功能,示例代码如下:

3.3.3 开发验证

1)下载代码

     执行下面命令下载haas代码

git clone https://gitee.com/alios-things/AliOS-Things.git -b dev_3.1.0_haas

2) 添加LED应用代码

在application/example/helloworld_demo/appdemo.c中,包含头文件"led.h",添加LED示例代码,完整代码如下:

3) 编译代码,命令如下:

4) 烧录版本

   完成后,烧录编译出来的版本到HaaS100上,烧录方法参见HaaS100快速开始

   烧录完后,按reset键重启HaaS100板子。

5)验证

  板子启动后,可以观察到板子上LED1到LED5循环亮灭。

4、开发者技术支持

如需更多技术支持,可加入钉钉开发者群

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0hhYVNUZWNo,size_16,color_FFFFFF,t_70

更多技术与解决方案介绍,请访问阿里云AIoT首页https://iot.aliyun.com/


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK