目录
- 引言
- 一、 开发环境准备
- 二、 IDE 的使用
- 三、 烧录工具的使用(Telink BDT)
- 四、 实战示例:从编译到烧录
- 五、 总结
摘要
本文面向初次接触 Telink BLE 芯片开发的工程师,系统讲解从开发环境搭建、IDE 工程导入与编译,到使用 Telink BDT 完成固件烧录的完整流程,并通过实战示例帮助读者快速上手,为后续 BLE 应用开发打下基础。
引言
本文面向初次接触 Telink BLE 芯片开发的工程师,系统讲解从开发环境搭建到固件烧录的完整流程。通过本文,你将掌握 IDE 的安装与工程导入、SDK 的编译方法,以及使用 Telink BDT 烧录工具完成固件下载的实操步骤,为后续 BLE 应用开发打下坚实基础。
一、 开发环境准备
1.1 工具链概览
- Telink IDE:基于 Eclipse 的集成开发环境,用于工程管理与代码编译
- Telink B85M SDK:BLE 芯片官方软件开发套件,提供协议栈与示例工程
- Telink BDT:官方烧录工具,用于将编译产物下载到芯片
1.2 下载与安装
- 从 Telink 官方 Wiki 下载 IDE、SDK 与 BDT 工具
- IDE 必须以管理员身份运行,且必须安装到 C 盘根目录
- 解压 SDK 时注意目录层级不宜过深,建议新建 proj 文件夹作为导入路径
二、 IDE 的使用
2.1 工程导入
- 打开 IDE,将 proj 路径复制到导入位置,点击 OK
- 通过 File → Import 进入导入向导,选择对应工程类型并点击 Next
- 导入完成后,在 vendor 目录下选择需要开发的目标工程
2.2 工程编译与切换
- 在右侧工程目录中选中目标工程,点击菜单栏编译图标并勾选对应工程
- 若工程文件显示为灰色,需按步骤解锁后再进行编译
- 编译完成后,在工程根目录生成编译输出文件夹,即为固件产物所在位置
三、 烧录工具的使用(Telink BDT)
3.1 烧录工具连接
- 打开 Telink BDT 工具,连接调试器与目标开发板
- 确认芯片型号与烧录接口配置正确
3.2 固件烧录流程
- 在 BDT 中加载编译生成的固件文件
- 点击烧录按钮,等待下载完成并校验结果
- 烧录成功后,开发板即可运行新固件
下面是 Telink BDT 烧录的完整流程:
整个烧录过程围绕「连接 → 加载 → 烧录 → 校验」四个核心环节展开。首先打开 BDT 工具并连接调试器与开发板,确认芯片型号与烧录接口无误后,加载编译生成的固件文件;随后点击烧录按钮开始下载,等待完成后进行结果校验。若校验失败,需重新加载固件并再次烧录;校验成功后,开发板即可运行新固件。
3.3 常见问题与排查
问题一:烧录失败
现象:点击烧录按钮后,BDT 提示烧录失败或校验错误。
原因分析:
- 固件文件未正确加载或文件损坏
- 芯片处于写保护状态,需先解锁
- 烧录接口(如 SWS)接线松动或接触不良
解决步骤:
- 重新加载编译生成的固件文件,确认文件路径无中文或特殊字符
- 检查调试器与开发板之间的接线,确保 SWS、GND、VCC 连接牢固
- 若芯片被写保护,先在 BDT 中执行解锁操作,再重新烧录
- 更换 USB 数据线或接口,排除供电不足导致的烧录中断
错误提示截图占位:此处可补充 BDT 烧录失败时的错误弹窗截图。
问题二:连接超时
现象:BDT 无法识别调试器,提示连接超时或设备未找到。
原因分析:
- 调试器驱动未正确安装
- USB 接口供电不足或数据线仅支持充电
- 开发板未上电或复位电路异常
解决步骤:
- 确认调试器驱动已安装,可在设备管理器中查看是否识别到设备
- 更换 USB 数据线,优先使用带数据功能的高质量线缆
- 为开发板单独供电,避免仅依赖 USB 供电导致电压不稳
- 重新插拔调试器,或重启 BDT 工具后再尝试连接
错误提示截图占位:此处可补充 BDT 连接超时或设备未找到的提示截图。
问题三:芯片型号不识别
现象:BDT 无法识别当前芯片型号,或识别到的型号与开发板实际芯片不一致。
原因分析:
- 芯片型号选择错误,与开发板实际芯片不匹配
- 调试器固件版本过旧,不支持当前芯片
- 芯片未正确上电,导致无法读取芯片信息
解决步骤:
- 在 BDT 中手动选择与开发板一致的芯片型号(如 B85M 系列)
- 升级 BDT 工具到最新版本,确保支持当前芯片
- 检查开发板供电是否正常,确认芯片已上电后再重新识别
- 若仍无法识别,尝试更换调试器或联系 Telink 技术支持
错误提示截图占位:此处可补充 BDT 芯片型号识别失败的提示截图。
常见问题快速排查表
| 问题 | 现象 | 主要原因 | 快速解决步骤 |
|---|---|---|---|
| 烧录失败 | BDT 提示烧录失败或校验错误 | 固件文件损坏、芯片写保护、接线松动 | 重新加载固件 → 检查 SWS/GND/VCC 接线 → 解锁芯片 → 更换 USB 线 |
| 连接超时 | 无法识别调试器,提示连接超时或设备未找到 | 驱动未安装、供电不足、数据线仅支持充电 | 安装驱动 → 更换数据线 → 单独供电 → 重启 BDT |
| 芯片型号不识别 | 无法识别芯片型号,或识别型号与实际不符 | 型号选择错误、调试器固件过旧、芯片未上电 | 手动选择正确型号 → 升级 BDT → 检查供电 → 更换调试器 |
四、 实战示例:从编译到烧录
4.1 编译示例工程
- 在 IDE 中打开 SDK 自带的 BLE 示例工程
- 执行编译操作,生成可烧录的固件文件
下面是一个基于 Telink B85M SDK 的 BLE 示例工程骨架代码(main.c),涵盖系统初始化、BLE 广播、连接回调等核心流程:
#include"driver.h"#include"stack/ble/ble.h"#include"stack/ble/ble_common.h"/* 广播数据包内容:设备名称 + 厂商自定义数据 */staticconstu8 adv_data[]={0x02,0x01,0x06,// Flags:LE General Discoverable0x03,0x03,0x12,0x18,// Complete List of 16-bit Service UUIDs:0x1812(HID)0x0B,0x09,'T','e','l','i','n','k',// Complete Local Name:"Telink"0x5F,0x42,0x4C,0x45};/* 连接参数:间隔 30ms,从机延迟 0,超时 400ms */staticconstle_connection_parameter_tconn_param={.interval_min=24,// 30ms(单位 1.25ms).interval_max=24,.latency=0,.timeout=320// 400ms(单位 10ms)};/* 连接状态回调:处理连接建立与断开事件 */staticvoidapp_connect_callback(u8 e,u8*p,u8 n){if(e==GAP_EVT_CONNECTED){/* 连接建立:停止广播,更新连接参数 */bls_ll_setAdvEnable(0);bls_l2cap_updateConnParameter(&conn_param);printf("BLE connected!\r\n");}elseif(e==GAP_EVT_TERMINATED){/* 连接断开:恢复广播,等待再次连接 */bls_ll_setAdvEnable(1);printf("BLE disconnected, restart adv...\r\n");}}/* 主函数:系统初始化 + BLE 协议栈初始化 + 广播启动 */intmain(void){/* 1. 系统时钟、GPIO、UART 等外设初始化 */cpu_wakeup_init();clock_init(SYS_CLK_16M_Crystal);gpio_set_func(GPIO_LED,AS_GPIO);gpio_set_output_en(GPIO_LED,1);uart_init(115200,UART_TX_PIN);/* 2. BLE 协议栈初始化,注册连接回调 */blc_init();bls_ll_setAdvCustom(adv_data,sizeof(adv_data));bls_gap_setEventMask(GAP_EVT_MASK_CONNECTED|GAP_EVT_MASK_TERMINATED);bls_gap_registerEventCallback(app_connect_callback);/* 3. 启动广播,等待主机扫描并连接 */bls_ll_setAdvEnable(1);printf("Telink BLE demo started!\r\n");/* 4. 主循环:处理协议栈事件与低功耗调度 */while(1){blc_poll();// 处理 BLE 协议栈事件sleep_ms(1);// 简单延时,降低功耗}}代码说明:
- 广播数据(adv_data):定义了设备广播时对外宣告的信息,包括设备名称、支持的 Service UUID 等,主机扫描时即可识别该设备。
- 连接参数(conn_param):配置连接建立后的通信间隔、从机延迟与超时时间,直接影响功耗与响应速度。
- 连接回调(app_connect_callback):监听连接建立与断开事件。连接成功后停止广播并更新连接参数,断开后恢复广播以便再次被连接。
- 主函数(main):依次完成外设初始化、BLE 协议栈初始化、注册回调并启动广播,最后进入主循环持续处理协议栈事件。
4.2 烧录并验证
- 使用 Telink BDT 将固件烧录到开发板
- 通过串口或日志观察程序运行状态,验证功能是否正常
五、 总结
本文从工具下载、IDE 安装、工程导入与编译,到 BDT 烧录的完整链路进行了梳理。掌握这套流程后,即可独立完成 Telink BLE 工程的开发与部署。后续可进一步深入学习 BLE 协议栈 API 与低功耗设计,逐步进阶到实际产品开发。
相关下载
IDE下载
SDK V3.4.2.1_Patch_0001
烧录工具下载
一、 IDE的使用
- 必须以管理员身份运行
- 必须安装到C:
安装完毕后,开始下面的导入SDK。
- 解压压缩包如下(目录路径尽量不要嵌套文件夹太深,新建 proj 文件夹作为导入路径。)
- 打开 IDE 工具,将 proj 路径 copy 到 3 位置,作为工程导入路径,点击 ok。
E:\xxxxxx\proj
点击 file,进入 import 如下图操作,最后点击 next。
导入完成,可以选择相应需要开发的工程,应用工程在 vendor 目录下(如图)。 - IDE 编译工程切换操作:
在右边工程目录选择目标工程,再点击菜单栏红框图标,勾选对应工程。
这时候工程还是没有被选中的,如图,文件都是灰色。
如何解决上述问题,看下面步骤:
点击ok后,效果如图,文件已经解锁。
- 如何编译工程?
编译完成如图
那么编译文件在位置呢?
在工程根目录会生成一个这样的文件夹