BLE学习笔记1:修改LED和按键程序

1.开发准备

1.1.nRF51/52开发板,这里我使用的是nRF52832开发板,店家提供的资料很多
1.2.开发环境,这里我不详细介绍

2.修改LED程序

由于nRF历程把LED的特性(charateristic)的值(value)固定了,所以这里我们添加的功能的,
收到1是不止点亮LED3,并反转LED4的状态。具体实现步骤如下:
2.1.先初始化LED4,添加的位置在main.c

#define LEDBUTTON_LED_PIN4              BSP_LED_3_MASK  
static void leds_init(void)
{
    LEDS_CONFIGURE(ADVERTISING_LED_PIN | CONNECTED_LED_PIN | LEDBUTTON_LED_PIN | LEDBUTTON_LED_PIN4);
    LEDS_OFF(ADVERTISING_LED_PIN | CONNECTED_LED_PIN | LEDBUTTON_LED_PIN | LEDBUTTON_LED_PIN4);
}

2.2.修改回调函数led_write_handler,在if语句里面添加

LEDS_INVERT(LEDBUTTON_LED_PIN4);

3.修改按键反馈程序

3.1.添加宏定义以及修改结构体数值

#define LEDBUTTON_BUTTON_PIN1            BSP_BUTTON_1 
static app_button_cfg_t buttons[] =
    {
        {LEDBUTTON_BUTTON_PIN0, false, BUTTON_PULL, button_event_handler},
    {LEDBUTTON_BUTTON_PIN1, false, BUTTON_PULL, button_event_handler}
    };

3.2.在ble_lbs.c写发送函数ble_button2_send(ble_lbs_t * p_lbs, uint8_t val)记得在ble_lbs.h里声明

      uint32_t ble_button2_send(ble_lbs_t * p_lbs, uint8_t val)
{
    ble_gatts_hvx_params_t params;
    uint16_t len = sizeof(val);
    memset(&params, 0, sizeof(params));
    params.type   = BLE_GATT_HVX_NOTIFICATION;
    params.handle = p_lbs->button_char_handles.value_handle;  //Button characteristic value handle
    params.p_data = &val;
    params.p_len  = &len;
    return sd_ble_gatts_hvx(p_lbs->conn_handle, &params);        
}

3.3.修改回调函数button_event_handler,添加执行选项

case LEDBUTTON_BUTTON_PIN1:
      ble_button2_send(&m_lbs, 2);
            break;

[参考文章] (https://www.cnblogs.com/iini/p/8996025.html)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

生活在别处u

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值