码迷,mamicode.com
首页 > 其他好文 > 详细

【蓝牙低功耗BLE】控制GPIO来点亮LED

时间:2014-10-05 01:45:57      阅读:322      评论:0      收藏:0      [点我收藏+]

标签:ble   蓝牙   

这节讲一下最简单的,也是最基础的东西,CC2540的IO操作,把PORT口当做GPIO来用,废话不多说,往下看。

1、硬件电路

硬件电路时最简单的,用一根GPIO去控制LED灯,由于GPIO作为output,所以也不用管GPIO的模式。

bubuko.com,布布扣

还是挺简单的,控制左边GPIO的高低来开关LED灯。


2、相关寄存器

P0SEL      P0[7:0]功能设置寄存器,默认设置为普通I/O口
P0INP P0[7:0]作为输入口时电路模式寄存器,可以设置为输入上下拉等
P0 P0[7:0]可以位寻址的I/O寄存器
P0DIR P0口输入输出设置寄存器

P0SEL    0:普通IO口    1:第二功能

P0DIR    0:输入            1:输出

P0INP    0:上拉/下拉    1:三态


3、代码实现

这里以P1_0为例,看下代码中是如何实现。

在hal_led.c里面的HalLedInit函数:

void HalLedInit (void)
{
#if (HAL_LED == TRUE)
  HalLedSet(HAL_LED_ALL, HAL_LED_MODE_OFF);  // Initialize all LEDs to OFF.

  // Set LED GPIOs to outputs.
  LED1_DDR |= LED1_BV;
#if (!defined HAL_PA_LNA && !defined HAL_PA_LNA_CC2590)
  LED2_DDR |= LED2_BV;
#if (!defined CC2540_MINIDK && !defined HAL_BOARD_CC2540USB)
  LED3_DDR |= LED3_BV;
#endif
#endif
#if defined BLINK_LEDS
  HalLedStatusControl.sleepActive = FALSE;  // Initialize sleepActive to FALSE.
#endif
#endif
相关的宏定义
/* 1 - Green */
#define LED1_BV                        BV(0)
#define LED1_SBIT                      P1_0
#define LED1_DDR                       P1DIR
#define LED1_POLARITY                  ACTIVE_HIG

开关LED

  #define HAL_TURN_OFF_LED1()       st( LED1_SBIT = LED1_POLARITY (0); )
  #define HAL_TURN_OFF_LED2()       st( LED2_SBIT = LED2_POLARITY (0); )
  #define HAL_TURN_OFF_LED3()       st( LED3_SBIT = LED3_POLARITY (0); )
  #define HAL_TURN_OFF_LED4()       HAL_TURN_OFF_LED1()

  #define HAL_TURN_ON_LED1()        st( LED1_SBIT = LED1_POLARITY (1); )
  #define HAL_TURN_ON_LED2()        st( LED2_SBIT = LED2_POLARITY (1); )
  #define HAL_TURN_ON_LED3()        st( LED3_SBIT = LED3_POLARITY (1); )
  #define HAL_TURN_ON_LED4()        HAL_TURN_ON_LED1(


提取一下关键代码:

1)把P1_0设置为输出

P1_DIR |= 0x01;

2)设置P1_0为高电平,点亮LED

P1_0 = 1;
2)设置P1_0为低电平,熄灭LED
P1_0 = 0;

其实看一下协议栈里面的HAL中针对各个接口的封装也不难。


这一节就先到这。


【蓝牙低功耗BLE】控制GPIO来点亮LED

标签:ble   蓝牙   

原文地址:http://blog.csdn.net/vv0_0vv/article/details/39785119

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!