当前位置: 首页 > news >正文

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

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

环境准备

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

宏的配置

# Config loggerCONFIG_LOG=yCONFIG_USE_SEGGER_RTT=yCONFIG_LOG_BACKEND_RTT=yCONFIG_LOG_BACKEND_UART=nONFIG_CONSOLE=y#添加蓝牙从机
CONFIG_BT=yCONFIG_BT_PERIPHERAL=yCONFIG_BT_DEVICE_NAME="Hello_World"CONFIG_DK_LIBRARY=y#关闭Zephyr系统打印
CONFIG_BOOT_BANNER=nCONFIG_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技术支持的可以在个人资料获取我的联系方式,感谢读者支持!
http://www.lryc.cn/news/605001.html

相关文章:

  • sqli-labs:Less-7关卡详细解析
  • 国内数据集成厂商有哪些?如何选择最适合的数据集成平台?
  • Qt 与物联网(IoT)开发
  • 【Linux】重生之从零开始学习运维之备份恢复
  • String模拟实现的补充说明
  • 第1课:向量与矩阵运算
  • QT中QTableView+Model+Delegate实现一个demo
  • 【ESP32设备通信】-LAN8720与ESP32集成
  • 如何设计一个站内消息系统:架构设计合集(八)
  • 订单识别技术原理及场景应用
  • 【音视频】WebRTC 开发环境搭建-Web端
  • MYSQL:视图
  • Qt 下载说明
  • uniApp实战六:Echart图表集成
  • 实现implements InitializingBean, DisposableBean 有什么用
  • 【MATLAB/Simulink】查看MATLAB以往版本的帮助文档
  • 牛顿-拉夫森法求解非线性方程组
  • 无人机惯性导航模块运行与技术难点!
  • 25年新算法!基于猛禽的优化算法(BPBO):一种元启发式优化算法,附完整免费MATLAB代码
  • 《数学模型》——最大流与最小费用流问题
  • Mediapipe 的某些模型,网络下载不来可以去gitee找找看
  • 双塔模型 + 自监督学习:解决长尾物品表征难题
  • Helm在Kubernetes中的应用部署指南与案例解析
  • FragmentManager 返回栈与 Activity 运行栈的关系(当按下Back键时屏幕会如何变化?)
  • 基于SpringBoot+MyBatis+MySQL+VUE实现的便利店信息管理系统(附源码+数据库+毕业论文+远程部署)
  • 如何不让android studio自动换行
  • AI服务器中,EEPROM有哪些部件使用,需要存储哪些信息?
  • NLU 语义解析评测实践:基于函数调用的 ACC、ROUGE 与 BLEU 综合指标
  • 《SAM:Segment Anything》论文精读笔记
  • 《CLIP改进工作串讲》论文精读笔记