930电子网

 找回密码
 立即注册
艾克姆科技推出最新产品STC32G12K128开发板
查看: 26123|回复: 6

SDK例程试验步骤1:蓝牙点灯

[复制链接]

52

主题

354

帖子

6545

积分

版主

Rank: 7Rank: 7Rank: 7

积分
6545
发表于 2019-6-12 08:59:32 | 显示全部楼层 |阅读模式
本帖最后由 强光手电 于 2019-6-12 09:26 编辑

                         蓝牙点灯实验步骤     

蓝牙点灯实验演示手机和设备(开发板)连接后,通过手机的APP发送命令控制开发板上的指示灯D3的亮灭,按动开发板上的按键S1S1的状态会发送给APP                                               

                        表1:指示灯和按键分配
部件
指示灯
功能描述
指示灯
D1
广播指示灯:常亮表示正在广播。
D2
连接指示灯:常亮表示已和主机建立连接。
D3
通过手机APP控制该指示灯亮灭。
  
按键
  
S1
连接成功后,按下和释放S1按键,按键状态会发送到主机。

第一步:程序下载
1.打开工程
  • 启动Keil MDK5。
  • 在Keil MDK5中执行“Project→Open Project”打开“\nRF5_SDK_15.2.0_9412b96\examples\ble_peripheral\ble_app_blinky\pca10040\s132\arm5_no_packs”目录下的工程“experimental_ble_app_blinky_s132_pca10040.uvproj”。

2. 下载协议栈
     切换到下载协议栈的Target,按照下图所示设置编程算法,设置完成后,点击下载按钮下载协议栈。
                   图1:下载协议栈时的编程算法

3. 下载应用程序
     切换到应用程序Target,编译工程,编译成功后,点击 按钮下载应用程序。应用程序的编程算法都是设置好的,一般不需要自己去设置。下载完成后,程序运行,指示灯D1闪烁表示正在广播。

第二步:功能测试
1. 程序运行后,指示灯D1常亮、D2熄灭,表示当前正在广播,还未和主机建立连接。
                        图2:扫描设备
2. 手机上打开nRF Connect,点击“SCAN”按钮启动扫描,扫描到“Nordic_Blinky”设备后点击“CONNECT”按钮连接设备,如下图所示。

3. 连接成功后,开发板上指示灯D1熄灭、D2点亮,nRF Connect中可以看到设备的服务列表,如下图所示。


                              图3:连接成功

4.   点击“Nordic LED BUTTON Service”,展开LED和按键服务,如下图所示。


                            图4:LED和按键服务

5.  点击“Nordic LED BUTTON Servicee”中“Button”特征右边的3个向上的小箭头,使能通知。
6.  按动开发板上的S1按键,当按键按下时,开发板会将按键状态“Button pressed”通知给主机,这时在APP上会看到特征“Button”的值为“Button pressed”;当按键释放后,开发板会将按键状态“Button released”通知给主机,这时在APP上会看到特征“Button”的值为“Button released”。

                                图5:接收开发板发送的按键状态

7.   点击特征“LED”右边向上的箭头,这时会弹出写特征值的窗口,勾选“ON”或“OFF”后点击“SEND”按钮即可控制开发板上指示灯D3的亮和灭。

              图6:LED和按键服务










本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

52

主题

354

帖子

6545

积分

版主

Rank: 7Rank: 7Rank: 7

积分
6545
 楼主| 发表于 2019-10-9 17:55:19 | 显示全部楼层
superlife 发表于 2019-10-9 10:33
强哥强哥,我想问一下,一块52832怎么控制另一个52832灯的亮灭

在SDK里面有蓝牙点灯的主从机demo
1:从机路径-nRF5_SDK_15.2.0_9412b96\examples\ble_peripheral\ble_app_blinky
2:主机路径-nRF5_SDK_15.2.0_9412b96\examples\ble_central\ble_app_blinky_c

当然,也可以使用串口透传的主从机实现,主机发送一个自定义的命令,从机收到后点灯/熄灯。
回复 支持 1 反对 0

使用道具 举报

0

主题

1

帖子

28

积分

新手上路

Rank: 1

积分
28
发表于 2019-10-9 10:33:36 | 显示全部楼层
强哥强哥,我想问一下,一块52832怎么控制另一个52832灯的亮灭
回复 支持 反对

使用道具 举报

8

主题

13

帖子

87

积分

注册会员

Rank: 2

积分
87
发表于 2020-12-10 17:24:34 | 显示全部楼层
你好 我有2个问题 求指导一下
问题1----这2个强制的服务是在代码哪里体现的呢?
问题2----这个APP去操作LED的时候 界面ON OFF 比较方便 我发现和UUID有关系 修改一下UUID以后 就没有这个触碰型的了 是普普通通的键盘输入型
如下图
这个UUID有没有啥规范或者约定 在哪里能看到  谢谢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复 支持 反对

使用道具 举报

52

主题

354

帖子

6545

积分

版主

Rank: 7Rank: 7Rank: 7

积分
6545
 楼主| 发表于 2020-12-10 17:43:28 | 显示全部楼层
GKOSON 发表于 2020-12-10 17:24
你好 我有2个问题 求指导一下
问题1----这2个强制的服务是在代码哪里体现的呢?
问题2----这个APP去操作L ...

问题1解答:这个例子用的是自定义的服务,代码见LBS服务初始化函数。
问题2解答:因为手机APP是Nordic专门针对点灯写的,APP发现这个特定的自定义UUID之后,就会知道当前的BLE设备运行的是点灯的程序。换了UUID之后,APP就判断不了BLE设备的功能了,所以,在执行写操作的时候,会弹出一个编辑框,让用户输入需要发送的数据。
回复 支持 反对

使用道具 举报

8

主题

13

帖子

87

积分

注册会员

Rank: 2

积分
87
发表于 2020-12-11 09:39:39 | 显示全部楼层
强光手电 发表于 2020-12-10 17:43
问题1解答:这个例子用的是自定义的服务,代码见LBS服务初始化函数。
问题2解答:因为手机APP是Nordic专 ...

好的 谢谢
第二个问题理解了
第一个问题 好像找不到代码体现 只看到.H有 你真看到过代码吗?谢谢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复 支持 反对

使用道具 举报

52

主题

354

帖子

6545

积分

版主

Rank: 7Rank: 7Rank: 7

积分
6545
 楼主| 发表于 2020-12-11 17:39:54 | 显示全部楼层
GKOSON 发表于 2020-12-11 09:39
好的 谢谢
第二个问题理解了
第一个问题 好像找不到代码体现 只看到.H有 你真看到过代码吗?谢谢

工程里面搜索这个函数:ble_lbs_init,实现的代码在这个函数里面。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|官方淘宝店|930电子网 ( 皖ICP备16000695号-2 )

GMT+8, 2024-11-21 23:12 , Processed in 0.620088 second(s), 23 queries .

快速回复 返回顶部 返回列表