这里会显示出您选择的修订版和当前版本之间的差别。
后一修订版 | 前一修订版 后一修订版 两侧同时换到之后的修订记录 | ||
cc2640r2f:first_example [2017/08/31 16:30] 127.0.0.1 外部编辑 |
cc2640r2f:first_example [2017/09/27 15:43] long |
||
---|---|---|---|
行 1: | 行 1: | ||
< | < | ||
+ | |||
# 下载运行第一个程序 # | # 下载运行第一个程序 # | ||
+ | |||
## 介绍 ## | ## 介绍 ## | ||
- | 本章使用< | + | 本章使用< |
- | 有关工程配置和编译选项以及下载方法参考< | + | 有关工程配置和编译选项以及下载方法参考< |
- | simple_peripheral工程实现了具有GATT服务的蓝牙低功耗外设。并且该项目作为后面协议栈讲解的基础程序。 | + | simple_peripheral 工程实现了具有 GATT 服务的蓝牙低功耗外设,该工程会作为后面协议栈讲解的基础程序。 |
## 硬件环境 ## | ## 硬件环境 ## | ||
- | 使用USB连接< | + | |
+ | 使用 USB 连接<a href="http://docs.leconiot.com/doku.php? | ||
![](http:// | ![](http:// | ||
- | 成功连接开发板之后,打开电脑的设备管理器。可以看见XDS110的两个端口,接下来我们打印使用的串口是`XDS110 Class Application/ | + | 成功连接开发板之后,打开电脑的设备管理器。可以看到 XDS110 的两个端口,接下来打印使用串口 `XDS110 Class Application/ |
- | > | + | > |
![](http:// | ![](http:// | ||
## 软件环境 ## | ## 软件环境 ## | ||
+ | |||
- IAR Embedded workbench 7.80.3 | - IAR Embedded workbench 7.80.3 | ||
- BLE-STACK V3.0.1 | - BLE-STACK V3.0.1 | ||
行 25: | 行 29: | ||
- BLE Scanner | - BLE Scanner | ||
- | 协议栈和IAR安装以及我们工程编译参考< | + | 协议栈和 IAR 安装以及工程编译参考< |
## 程序下载 ## | ## 程序下载 ## | ||
- | 提供两种方式进行程序下载,如果用户已经安装了IAR,并且参考开发环境搭建部分搭建好了环境之后可以直接使用IAR进行下载。如果用户目前还没有安装IAR,可以使用flash_programmer进行固件下载。下面我们说明一下如何使用flash_Programer 2进行程序下载。 | + | |
- | 1. 连接开发板,并打开Flash_Prorammer 2软件,在Connected devices界面可以看见我们的设备。 | + | 提供两种方式进行程序下载,如果用户已经安装了 IAR 并且搭建好了开发环境后可以直接使用 IAR 进行下载;如果用户目前还没有安装 IAR ,可以使用flash_programmer 进行固件下载。 |
- | 2. 点击browser按键,在C: | + | 下面说明如何使用 flash_Programer 2 进行程序下载: |
- | 3. 勾选Erase,选择All unprotected pages。 | + | 1. 连接开发板并打开 Flash_Prorammer 2 软件,在 Connected devices 界面可以看见我们的设备。 |
- | 4. 勾选Program,选择Entire source file。 | + | 2. 点击 browser 按键,在 C: |
- | 5. 勾选Verify 选择Readback | + | 3. 勾选 Erase ,选择 All unprotected pages 。 |
- | 6. 点击run,即可完成固件下载。 | + | 4. 勾选 Program,选择Entire source file 。 |
+ | 5. 勾选 Verify 选择 Readback | ||
+ | 6. 点击 run ,即可完成固件下载。 | ||
![](http:// | ![](http:// | ||
- | ## Service/ | + | ## Service/ |
- | 该工程包含一个服务(Service),5个特征值(characteristic)。 | + | |
- | 注意下面的UUID值,使用BLE Scanner可以获得128位的UUID,但该项目生成的是16位的UUID。 | + | 该工程包含一个服务( Service ), 5 个特征值( characteristic )。 |
+ | 注意下面的 UUID 值,使用 BLE Scanner 可以获得 128 位的 UUID ,但该项目生成的是 16 位的 UUID 。 | ||
|characteristic|UUID|格式|属性|资料来源| | |characteristic|UUID|格式|属性|资料来源| | ||
行 51: | 行 58: | ||
## 用法 ## | ## 用法 ## | ||
- | 使用putty的串口功能作为该项目的串口显示器。使用以下参数配置putty串口。 | + | |
+ | 使用 putty 的串口功能作为该项目的串口显示器。使用以下参数配置 putty 串口。 | ||
|UART参数|默认值| | |UART参数|默认值| | ||
行 61: | 行 69: | ||
|Flow Control|None| | |Flow Control|None| | ||
- | 当 Simple Peripheral程序启动,可以在putty上看见项目名称,广播状态,设备地址,如下图所示。 | + | 当 Simple Peripheral 程序启动,可以在 putty 上看见项目名称,广播状态,设备地址,如下图所示。 |
![](http:// | ![](http:// | ||
- | 广播是在程序启动后默认启动的,打开手机的BLE Scanner扫描设备,可以看见一个名为SimpleBLEPeripheral的设备。 | + | |
+ | 广播是在程序启动后默认启动的,打开手机的 BLE Scanner 扫描设备,可以看见一个名为 SimpleBLEPeripheral 的设备。 | ||
![](http:// | ![](http:// | ||
- | 如果有多个名称为SimpleBLEPeripheral的设备,可以通过左侧的RSSI数值来判断需要连接的设备,该值表示蓝牙的信号强度。一旦连接上设备,终端窗口将显示智能手机的设备地址。 | + | |
+ | 如果有多个名称为 SimpleBLEPeripheral 的设备,可以通过左侧的 RSSI 数值来判断需要连接的设备,该值表示蓝牙的信号强度。一旦连接上设备,终端窗口将显示智能手机的设备地址。 | ||
![](http:// | ![](http:// | ||
- | 连接成功之后,可以通过按键设置PHY的首选项,关于PHY更多描述,参考< | + | |
- | 在BLE Scanner中,你可以看到有关SimpleBLEPeripheral更多信息。 | + | 连接成功之后,可以通过按键设置 PHY 的首选项,关于 PHY 更多描述,参考< |
+ | 在 BLE Scanner 中,你可以看到有关 SimpleBLEPeripheral 更多信息。 | ||
![](http:// | ![](http:// | ||
- | 点开CUSTOM SERVICE,这是用户自定义服务,其中包含5个characteristic,并显示了每个characteristic的信息。 | + | |
+ | 点开 CUSTOM SERVICE ,这是用户自定义服务,其中包含 5 个 characteristic ,并显示了每个 characteristic 的信息。 | ||
![](http:// | ![](http:// | ||
### characteristic 1 (UUID:FFF1) ### | ### characteristic 1 (UUID:FFF1) ### | ||
- | characteristic 1具有读写属性,包含一个字节长度的值。如下图所示。 | + | |
+ | characteristic 1 具有读写属性,包含一个字节长度的值。如下图所示: | ||
![](http:// | ![](http:// | ||
- | 按下R按钮后,可以读取characteristic的值,显示在HEX后面,默认是0x01。按下写入按钮后,出现写入弹窗,可以写入1字节任意数字,再次点击读取可以获取刚才写入的值。并且可以在putty中断看见写入的ASCII值。这里我们写入的是2,对应ASCII码为50. | + | |
+ | 按下 R 按钮后,可以读取 characteristic 的值,显示在 HEX 后面,默认是 0x01 。 | ||
+ | 按下写入按钮后,出现写入弹窗,可以写入 1 字节任意数字,再次点击读取可以获取刚才写入的值。并且可以在 putty 中断看见写入的 ASCII 值。这里写入的是 2 ,对应 ASCII 码为 50 。 | ||
![](http:// | ![](http:// | ||
- | 每个用户特征值下面都有一个R按键,可以读取特征名称。如下图所示。 | + | |
+ | 每个用户特征值下面都有一个 R 按键,可以读取特征名称。如下图所示: | ||
![](http:// | ![](http:// | ||
### characteristic 2 (UUID: | ### characteristic 2 (UUID: | ||
- | 此特征值仅具有读属性。默认值为0x02.可按照characteristic 1方式进行读。 | + | |
+ | 此特征值仅具有读属性。默认值为 0x02。可参照 characteristic 1 方式进行读。 | ||
### characteristic 3 (UUID: | ### characteristic 3 (UUID: | ||
- | 此特征值仅具有写属性,默认值为0x03.可按照characteristic 1方式进行写。 | + | |
+ | 此特征值仅具有写属性,默认值为 0x03。可参照 characteristic 1方式进行写。 | ||
### characteristic 4 (UUID: | ### characteristic 4 (UUID: | ||
- | 此特征值仅具有通知属性,通过点击N按键打开通知属性,打开后它会将characteristic 3的值以通知的方式发送出来。手机端接收到之后显示在界面。如下图所示。 | + | |
+ | 此特征值仅具有通知属性,通过点击 N 按键打开通知属性。打开后它会将 characteristic 3 的值以通知的方式发送出来,手机端接收到之后显示在界面。 | ||
+ | 如下图所示: | ||
![](http:// | ![](http:// | ||
- | 并且还可按下特征值配置旁边的读取按钮显示是否已经启动了通知。 | + | |
+ | 还可按下特征值配置旁边的读取按钮显示是否已经启动了通知。 | ||
![](http:// | ![](http:// | ||
+ | |||
### characteristic 5 (UUID: | ### characteristic 5 (UUID: | ||
- | characteristic 5仅具有读属性,它是5个字节,默认值为0x0102030405.它与其他特征值不同的是它需要认证。通过智能手机与外设配对来完成。默认的密码是0000,当配对成功,才能读取到正确内容。 | + | |
+ | characteristic 5 仅具有读属性,它是 5 个字节,默认值为 0x0102030405。与其他特征值不同的是需要认证。认证方式是由智能手机与外设配对,默认的密码是 0000,配对成功才能读取到正确内容。 | ||
![](http:// | ![](http:// | ||
## 加入我们 ## | ## 加入我们 ## | ||
+ | |||
文章所有代码、工具、文档开源。加入我们[**QQ群 591679055**](http:// | 文章所有代码、工具、文档开源。加入我们[**QQ群 591679055**](http:// | ||
<div> | <div> | ||
行 149: | 行 186: | ||
</ | </ | ||
- |