一、硬件连接
按键名称 | 引脚 | 控制方法 |
---|---|---|
蜂鸣器 | DIO_13 | 高电平响、低电平停 |
LED灯1 | DIO_0 | 高电平亮、低电平灭 |
LED灯2 | DIO_1 | 高电平亮、低电平灭 |
按键控制查看CC2640R2F学习笔记(3)——按键使用
二、移植文件
链接:https://pan.baidu.com/s/1GM3ZYUVE6Jfzz9Nam6YLug 提取码:cubs
将 board_gpio.c 和 board_gpio.h 两个文件拖拽至CCS工程的Application文件夹下
添加文件过程中,选项选择如下
2.1 board_gpio.c
/*********************************************************************
* INCLUDES
*/
#include <string.h>
#include <stdio.h>
#include <ti/sysbios/knl/Clock.h>
#include <ti/sysbios/knl/Task.h>
#include <ti/sysbios/knl/Semaphore.h>
#include <ti/sysbios/knl/Queue.h>
#include <ti/drivers/PIN.h>
#include <ti/drivers/pin/PINCC26XX.h>
#include "board_gpio.h"
/*********************************************************************
* LOCAL VARIABLES
*/
static PIN_State s_beepPins;
static PIN_Handle s_hBeepPins = NULL;
static PIN_State s_ledPins;
static PIN_Handle s_hLedPins = NULL;
// 蜂鸣器IO配置
static PIN_Config s_beepPinsCfg[] =
{
BOARD_BEEP_IO | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
PIN_TERMINATE
};
// LED灯IO配置
static PIN_Config s_ledPinsCfg[] =
{
BOARD_LED1_IO | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
BOARD_LED2_IO | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
PIN_TERMINATE
};
/*********************************************************************
* PUBLIC FUNCTIONS
*/
/**
@brief 配置蜂鸣器工作模式
@param beepMode 工作模式
@return none
*/
void Board_BeepSet(uint8 beepMode)
{
if(NULL == s_hBeepPins) // 第一次使用时注册IO
{
s_hBeepPins = PIN_open(&s_beepPins, s_beepPinsCfg);
}
switch(beepMode) // 执行模式
{
case BEEP_OFF: // 蜂鸣器不响模式
PIN_setOutputValue(s_hBeepPins, BOARD_BEEP_IO, 0);
break;
case BEEP_ON: // 蜂鸣器响模式
PIN_setOutputValue(s_hBeepPins, BOARD_BEEP_IO, 1);
break;
default:
break;
}
}
/**
@brief 配置LED灯工作模式
@param ledMode 工作模式
@return none
*/
void Board_LedSet(uint8 ledMode)
{
if(NULL == s_hLedPins) // 第一次使用时注册IO
{
s_hLedPins = PIN_open(&s_ledPins, s_ledPinsCfg);
}
switch(ledMode) // 执行模式
{
case LED_OFF: // LED灭模式
PIN_setOutputValue(s_hLedPins, BOARD_LED1_IO, 0);
PIN_setOutputValue(s_hLedPins, BOARD_LED2_IO, 0);
break;
case LED_ON: // LED亮模式
PIN_setOutputValue(s_hLedPins, BOARD_LED1_IO, 1);
PIN_setOutputValue(s_hLedPins, BOARD_LED2_IO, 1);
break;
default:
break;
}
}
/*************************************END OF FILE*************************************/
2.2 board_gpio.h
#ifndef _BOARD_GPIO_H_
#define _BOARD_GPIO_H_
/*********************************************************************
* INCLUDES
*/
#include "_hal_types.h"
/*********************************************************************
* DEFINITIONS
*/
#define BOARD_BEEP_IO PIN_ID(13)
#define BOARD_LED1_IO PIN_ID(0)
#define BOARD_LED2_IO PIN_ID(1)
#define BEEP_OFF 0x00
#define BEEP_ON 0x01
#define LED_OFF 0x00
#define LED_ON 0x01
/*********************************************************************
* API FUNCTIONS
*/
void Board_BeepSet(uint8 beepMode);
void Board_LedSet(uint8 ledMode);
#endif /* _BOARD_GPIO_H_ */
三、API调用
需包含头文件 board_gpio.h
Board_BeepSet
功能 | 配置蜂鸣器工作模式 |
---|---|
函数定义 | void Board_BeepSet(uint8 beepMode) |
参数 | beepMode 工作模式(BEEP_ON或BEEP_OFF) |
返回 | 无 |
Board_LedSet
功能 | 配置LED灯工作模式 |
---|---|
函数定义 | void Board_LedSet(uint8 ledMode) |
参数 | beepMode 工作模式(LED_ON或LED_OFF) |
返回 | 无 |
• 由 Leung 写于 2019 年 4 月 13 日