【NCS随笔】如何在hello_world添加蓝牙功能(一)

发布于:2025-07-31 ⋅ 阅读:(17) ⋅ 点赞:(0)

如何在hello_world添加蓝牙功能(一)

环境准备

硬件:nRF54L15DK
软件版本:NCS3.0.2
例程:hello_world

宏的配置

# Config logger

CONFIG_LOG=y

CONFIG_USE_SEGGER_RTT=y

CONFIG_LOG_BACKEND_RTT=y

CONFIG_LOG_BACKEND_UART=n

ONFIG_CONSOLE=y

#添加蓝牙从机
CONFIG_BT=y

CONFIG_BT_PERIPHERAL=y

CONFIG_BT_DEVICE_NAME="Hello_World"

CONFIG_DK_LIBRARY=y

#关闭Zephyr系统打印
CONFIG_BOOT_BANNER=n

CONFIG_NCS_BOOT_BANNER=n

#关闭SPI,目前不需要
CONFIG_SPI_NOR=n

main添加蓝牙功能

添加广播包
#广播包
static const struct bt_data ad[] =

{

BT_DATA_BYTES(BT_DATA_FLAGS, (BT_LE_AD_GENERAL | BT_LE_AD_NO_BREDR)),

BT_DATA(BT_DATA_NAME_COMPLETE, DEVICE_NAME, DEVICE_NAME_LEN),

};

  
#扫描回应包
static const struct bt_data sd[] =

{

BT_DATA_BYTES(BT_DATA_UUID128_ALL, 0x84, 0xaa, 0x60, 0x74, 0x52, 0x8a, 0x8b, \

0x86, 0xd3, 0x4c, 0xb7, 0x1d, 0x1d, 0xdc, 0x53, 0x8d),
};

BT_CONN_CB_DEFINE(conn_callbacks) =

{

.connected = connected,

.disconnected = disconnected,

};

/* Private Functions ---------------------------------------------------------*/

static void connected(struct bt_conn *conn, uint8_t err)

{

if (err)

{
 printk("Connection failed (err %u)\n", err);
return;

}

 printk("Connected\n");

 dk_set_led_on(CON_STATUS_LED);

}

  

static void disconnected(struct bt_conn *conn, uint8_t reason)

{

 printk("Disconnected (reason %u)\n", reason);

 dk_set_led_off(CON_STATUS_LED);

}

main
int main(void)

{

int err = 0;

int blink_status = 0;

err = dk_leds_init();

if (err)

{

//printk("LEDs init failed (err %d)\n", err);

return err;

}

  

err = bt_enable(NULL);

if (err)

{

//printk("Bluetooth init failed (err %d)\n", err);

return 0;

}

//printk("Bluetooth initialized\n");

  

err = bt_le_adv_start(BT_LE_ADV_CONN_1, ad, ARRAY_SIZE(ad),

sd, ARRAY_SIZE(sd));

if (err)

{

//printk("Advertising failed to start (err %d)\n", err);

return err;

}


// printk("Advertising successfully started\n");

LOG_INF("BLE start");

for (;;)

{



dk_set_led(RUN_STATUS_LED, (++blink_status) % 2);

k_msleep(500);

}

return 0;

}

三、测试

在这里插入图片描述

你的点赞、收藏和评论是对我最大的支持,有问题多多指教,如果有需要Nordic开发板、Nordic的芯片以及Nordic技术支持的可以在个人资料获取我的联系方式,感谢读者支持!

网站公告

今日签到

点亮在社区的每一天
去签到