用AliOS Things在Developer Kit 上点亮一个LED

简介: * 看一下原理图,确认LED对应的IO口 * AliOS Things 框架-SOC层 * 操作GPIO * 写代码

全局掌控

  • 看一下原理图,确认LED对应的IO口
  • AliOS Things 框架-SOC层
  • 操作GPIO
  • 写代码

看一下原理图,确认LED对应的IO口

板子上有三个LED,分别是LED1,LED2,LED3。
看原理图,这三个LED的阳极接的3V电源。
只要控制LED的IO口低电平,对应的LED就会亮。

image.png | left | 827x547

根据图纸上的网络标号,确认三个LED分别对应的IO口。

LED1 对应 PB6
LED2 对应 PE3
LED3 对应 PD15

顺便看到了三个按键,一起记录一下。
KEY1 PE11
KEY2 PE14
KEY3 PE10

拿万用表测试一下,证明上述对应关系OK。

从单片机编程的思维考虑:
先将对应IO口设置为推挽输出模式(这样的IO口驱动能力很强,可以通过软件设置)
再通过控制对应IO口是0或者是1,来控制实际对应的高低电平
IO口是0,表示低电平,那么对应的LED会亮
IO口是1,表示高电平,对应的LED会灭

AliOS Things 框架-SOC层

在 AliOS Things 的体系中,SOC层属于底层的东西。由厂家负责维护,你要做的就是了解它。
在SDK的目录里,找到 board 的文件夹,里面找到对应的硬件名称。比如零妖打开的是 developerkit 这个文件夹。
这个文件夹里面,是一些涉及底层的东西,想找硬件底层的内容就来这里。

image.png | left | 747x396

操作GPIO

零妖要控制LED1,目的是闪烁LED1。
LED1 对应 PB6 ,查看和GPIO有关的头文件,它的编号是 22 。
在SDK的文件夹里面,有一个 include 的文件夹,里面放的是一些头文件,需要的话就查一下,包含到你的代码中。
操作GPIO属于操作SOC层中的硬件,所以 #include <hal/soc/soc.h> 即可。

在 include/hal/soc 文件夹里面,能找到一个 gpio.h 的头文件。
你可以查看对GPIO操作的一些函数。

GPIO有关的API,详细解释参考:https://github.com/alibaba/AliOS-Things/wiki/AliOS-Things-API-HAL-SOC-GPIO-Guide

image.png | left | 747x395

写代码

#include <aos/aos.h>
#include <hal/soc/soc.h>

gpio_dev_t LED1;//初始化一个GPIO相关的结构体

//声明函数
static void LED1_Off(void *arg);

//查看原理图,IO口输出0,LED亮
static void LED1_On(void *arg)
{
    hal_gpio_output_low(&LED1);
    aos_post_delayed_action(100, LED1_Off, NULL);
}
//查看原理图,IO口输出1,LED灭
static void LED1_Off(void *arg)
{
    hal_gpio_output_high(&LED1);
    aos_post_delayed_action(100, LED1_On, NULL);
}

//主任务,OS初始化完成后运行的第一个任务。
int application_start(int argc, char *argv[])
{
    LOG("初始化完成,应用程序开始:");
    
    LED1.port = 22;//LED1对应的IO口,在OS里面编号是22
    LED1.config = OUTPUT_PUSH_PULL;//设置为推挽输出
    hal_gpio_init(&LED1);//初始化LED1的IO口
    aos_post_delayed_action(1000, LED1_On, NULL);//1S之后调用LED1_On()函数
    aos_loop_run();//进入事件循环

    return 0;
}

从主任务讲起。
首先串口输出字符串,告诉你OS已经初始化完成。
配置IO口
然后又定时1S,时间到了之后,执行 LED_on()函数
LED亮之后,设置了一个100ms定时器,到时间后执行 LED_off()函数
LED灭之后,设置了一个100ms定时器,到时间之后执行LED_on()函数
LED亮和灭循环执行。

结束

  • SOC层是由芯片厂家负责维护的
  • 非必要,不要修改里面的内容
  • 你想操作底层硬件相关,就来SOC层找相关内容
  • 一些典型传感器已经有成熟的代码,这个后面再看

微信公众号 偶尔更新

1531823192520-8e7b5e01-69d4-4ef3-913c-53dca21b47a2.png | center | 310x310

目录
相关文章
|
物联网 开发工具 git
AliOS Things Developer Kit 快速入门
AliOS Things Developer Kit 快速入门,Windows 环境下开发环境的搭建过程及官方demo编译烧写步骤。
9096 0
|
传感器 消息中间件 物联网
HCIA物联网初级考试-第五章物联网操作系统及感知层开发介绍
HCIA物联网初级考试-第五章物联网操作系统及感知层开发介绍
HCIA物联网初级考试-第五章物联网操作系统及感知层开发介绍
|
AliOS-Things 物联网 编译器
使用HaaS Studio开发AliOS Things C/C++应用
本文章将介绍使用HaaS Studio 进行AliOS-Things C/C++应用开发。
使用HaaS Studio开发AliOS Things C/C++应用
|
算法 AliOS-Things 物联网
HaaS100开发调试系列 之 定位AliOS Things内存及Crash问题
本文主要说开发调试过程中经常遇到的内存问题。
HaaS100开发调试系列 之 定位AliOS Things内存及Crash问题
|
NoSQL 物联网
使用线上的开发板做开发调试 |《AliOS Things快速开发指南》
当您手上没有现成可用的开发板时,也可以使用线上的开发板来调试验证您的程序。本文主要介绍线上开发板的使用流程。
使用线上的开发板做开发调试 |《AliOS Things快速开发指南》
|
监控 AliOS-Things 物联网
使用线下开发板进行开发调试 |《AliOS Things快速开发指南》
本文主要介绍如何使用VSCode进行项目编译、固件烧录及串口监控。
使用线下开发板进行开发调试 |《AliOS Things快速开发指南》
|
域名解析 JSON AliOS-Things
AliOS Things 开发:让你的开发板支持 AliOS Studio 烧录
本文主要为大家讲解如何进行 AliOS Studio 烧录。
1111 0
AliOS Things 开发:让你的开发板支持 AliOS Studio 烧录
|
传感器 自然语言处理 监控
快速开发一个带APP的红外体温枪(基于AliOS Things Inside的Wi-Fi模组)
非接触红外测温在医疗,环境监测、个人健康等领域得到越来越广泛的应用。本文将向大家介绍如何通过AliOS-Things inside的WiFi模组,快速完成体温检测,流程涵盖从传感器数据采集,到阿里云IoT智能生活平台接入,以及快速构建App完成监控。
|
物联网 AliOS-Things Python
AliOS Things开发:让你的开发板支持AliOS Studio烧录
本文简单介绍一下如何让aos upload指令支持你的开发板下载,从而在AliOS-Studio中点击upload按钮即可立即下载AliOS-Things编译好的binary
13879 0
下一篇
无影云桌面