Z-Stack – HAL Driver API – LED控制

注明

  • 本文摘译自TI(德州仪器)公司的《HAL Drivers Application Programming Interface》。
  • 文件号:SWRA193。
  • 所有版权归TI(德州仪器)公司所有。
  • 本文章节序号与原文相同。
  • 关于硬件抽象层应用编程接口(HAL Driver API)的介绍详见Z-Stack – HAL Driver API – 简介

5. LED服务简介

本服务接口提供多种LED控制模式,包括开(ON)、关(OFF)、切换(TOGGLE)、闪光(FLASH)、闪烁(BLINK)。但不是所有开发平台都支持这些模式。

5.1 HalLedInit()

5.1.1 描述

该LED初始化函数会在设备启动时被调用一次。在其他LED函数调用前必须使用该函数初始化LED。此函数初始化LED时会自动带上必须和可选参数。

5.1.2 原型

void HalLedInit (void);

5.1.3 参数

无。

5.1.4 返回值

无。

5.2 HalLedSet()

5.2.1 描述

该函数用于设置某一LED的工作模式,包括开(ON)、关(OFF)、切换(TOGGLE)、闪光(FLASH)、闪烁(BLINK)。如果设置了闪光或者闪烁模式,函数会自动套用一些默认的参数。如果要自定义闪光或者闪烁的方式,可以使用HalLedBlink ()实现。

5.2.2 原型

void HalLedSet (uint8 led, uint8 mode);

5.2.3 参数

led – 要设置的LED的位掩码(详见文章末尾)。

mode – 指定工作模式(详见文章末尾)。

5.2.4 返回值

无。

5.3 HalLedBlink ()

5.3.1 描述

该函数将会使指定LED按给定的参数闪烁。

5.3.2 原型

void HalLedBlink (uint8 leds, uint8 numBlinks, uint8 percent, uint16 period);

5.3.3 参数

leds – 要设置的LED的位掩码(详见文章末尾)。

numBlinks – 要闪烁的次数(一次亮/熄为一次)。

percent – 一次闪烁中亮的时间所占比(0-100)。

period – 以毫秒计的一次闪烁的时间(1秒=1000毫秒)。

5.3.4 返回值

无。

5.4 HalLedGetState ()

5.4.1 描述

获取当前所有LED灯的状态(启用还是停用)。

5.4.2 原型

uint8 HalLedGetState (void);

5.4.3 参数

无。

5.4.4 返回值

返回一个八位二进制值,每一权位的值指示该位掩码对应的LED状态。如00000100表示权位2(从右向左,从0 开始)对应的LED是开启的,其他LED都是停用状态。

5.5 HalLedEnterSleep ()

5.5.1 描述

该函数将保存当前所有LED的状态,之后将所有LED设为电源节约模式。同时该函数会设置一个全局变量标示LED进入睡眠模式。此全局变量标示为睡眠时会使所有处理LED用到的中断都停止。

5.5.2 原型

void HalLedEnterSleep (void);

5.5.3 参数

无。

5.5.4 返回值

无。

5.6 HalLedExitSleep ()

5.6.1 描述

该函数与HalLedSleep ()对应,会恢复睡眠之前的LED状态。

5.6.2 原型

void HalLedExitSleep (void);

5.6.3 参数

无。

5.6.4 返回值

无。

5.7 常量表

5.7.1 LED位掩码表

  • HAL_LED_1 – LED1
  • HAL_LED_2 – LED2
  • HAL_LED_3 – LED3
  • HAL_LED_4 – LED4
  • HAL_LED_ALL – 所有LED

5.7.2 LED工作模式表

  • HAL_LED_MODE_OFF – 关闭
  • HAL_LED_MODE_ON – 开启
  • HAL_LED_MODE_BLINK – 闪烁
  • HAL_LED_MODE_FLASH – 闪光
  • HAL_LED_MODE_TOGGLE – 切换