打印
[CC2640]

CC2640R2F学习笔记——GPIO使用

[复制链接]
815|7
手机看帖
扫描二维码
随时随地手机跟帖
沙发
coshi|  楼主 | 2020-2-2 17:34 | 只看该作者
二、移植文件


将 board_gpio.c 和 board_gpio.h 两个文件拖拽至CCS工程的Application文件夹下

添加文件过程中,选项选择如下




使用特权

评论回复
板凳
coshi|  楼主 | 2020-2-2 17:34 | 只看该作者
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*************************************/


使用特权

评论回复
地板
coshi|  楼主 | 2020-2-2 17:35 | 只看该作者
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_ */


使用特权

评论回复
5
coshi|  楼主 | 2020-2-2 17:35 | 只看该作者
三、API调用

需包含头文件 board_gpio.h



使用特权

评论回复
6
wiba| | 2020-3-1 12:23 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
7
aoyi| | 2020-3-1 12:26 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
8
zljiu| | 2020-3-1 12:27 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

95

主题

3308

帖子

4

粉丝