本帖最后由 dirty123 于 2025-11-21 23:42 编辑
本篇主要蓝牙环境传感器服务。
一.工程创建
前言
前面使用Eclipse for ModusToolbox实现了是开发板可以工程运行起来,但每次创建工程拉取代码还是很看运气。看了官网论坛一份帖子【1】,尝试安装后VSCode环境可以拉取代码工程了,这里就用VSCode环境进行。
Git Bash以管理员权限运行,输入以下命令
- git config --system url."https://mirror.ghproxy.com/https://github.com".insteadOf https://github.com
下载下来的工具如下,以管理员权限运行install.cmd
如下,没有红色字体就是安装好
1.VSCode安装clangd、ModusToolbox Assistant等需要的插件。可参考官网论坛此贴【2】。
2.唤出ModusToolbox Assistant,开始创建工程
3.工程名称及路径
4.BSP选择芯片系列及支持的板级
5.选择代码工程。这里选择蓝牙,环境传感器服务工程,选好确认后点击"创建工程"
6.拉取工程稍需点时间,但拉取还是蛮快的。成功如下
7.初次进入工程如下有黄色弹框,点击Fix xxx按钮。
二.代码梳理
1.工程结构
拉取后工程代码结构如下
2.main函数如下,主要进行平台配置初始化,注册蓝牙管理回调app_bt_management_callback(主要实现蓝牙的工程),创建了状态机任务ess_task.
3.在蓝牙管理回调里主要实现蓝牙事件,开启初始化广播,关闭,状态改变等如下
4.在ess_task任务里主要实现温度读取,连接状态下将温度数据通过服务发送通知消息。
5.蓝牙的广播、服务、属性在cycfg_gatt_db.c/cycfg_gatt_db.h里实现。主要有服务、特征UUID,蓝牙广播名称等。
三.编译烧录测试
1.调出编译烧录界面
在如下Application选项卡下,可以对工程进行编译与烧录。
编译OK如下
2.烧录OK如下
3.打开串口窗口,复位开发板,可以看到日志如下
4.打开手机蓝牙及蓝牙app工具nRF Connect
蓝牙广播如下,名称为Thermistor
5.连接上蓝牙,打开服务通知,可以看到温度数据通过蓝牙从设备发到手机APP
至此,实现开发板传感器温度计蓝牙广播、连接、服务数据通讯功能,同时也对英飞凌CY8CKIT-062S2-AI的蓝牙功能开发有了全面较深入的学习和了解掌握。
PS:由于在特定文字上加链接发表时不显示,这里在文末列出。送人玫瑰,手留余香。
【1】基于ModusToolbox™ Tools package 在 VScode中使用
https://community.infineon.com/t5/%E5%8D%9A%E5%AE%A2/%E5%9F%BA%E4%BA%8EModusToolbox-Tools-package-%E5%9C%A8-VScode%E4%B8%AD%E5%BC%80%E5%8F%91%E8%B0%83%E8%AF%95%E4%BB%A3%E7%A0%81/ba-p/801961#.
【2】ModusToolbox的Git 服务代理
https://community.infineon.com/t5/Code-Examples/ModusToolbox-URL-Modifier/m-p/366015?utm_source=wechat&utm_medium=social&utm_campaign=202309_gc_zh-s_pss_cp.corporate.all&utm_content=p1&utm_term=1
|