微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > 请问PC通过USB Dongle 如何发自定义设置命令到远端的CC2540?

请问PC通过USB Dongle 如何发自定义设置命令到远端的CC2540?

时间:10-02 整理:3721RD 点击:

我现在知道一种方式可以做简单的设置就是去写characteristic的值。这种方法每次只能写1个字节远端的CC2540也能正确收到,但是我总觉得这不是一种标准的做法。

请问有其他方法吗?

Hi Liao Wei,

连接建立后, 最右边的窗口还有个Adv.Commands的选项, 里面有很多HCI命令可以发.

当然, 你可以利用BTool做完初始化流程后, 用串口调试助手之类的发命令下去, 前提是你要熟悉命令的格式, 这样你就可以自定义编辑你要发的东西.

但是要记住, 你通过PC发的数据, 远端的CC2540上面要有相应的代码配合才行, 比如远端的characteristic只能接收一个字节, 那么你发再多也没用.

Yan,您好。我感觉下面这个可以。但是我找了半天不知道远端CC2540在哪里收这个notification。是不是需要自己添加相应的处理函数呀,如果是的话我应该参考哪个文档或者类似函数来写呢?

[6] : <Tx> - 10:26:47.750
-Type : 0x01 (Command)
-Opcode : 0xFD9B (GATT_Notification)
-Data Length : 0x0A (10) byte(s)
ConnHandle : 0x0000 (0)
Authentic : 0x00 (No)
Handle : 0x0000 (0)
Value : 00:00:01:02:03:04
Dump(Tx):
01 9B FD 0A 00 00 00 00 00 00 01 02 03 04

------------------------------------------------------------------------------------------------------------------------
[7] : <Rx> - 10:26:47.812
-Type : 0x04 (Event)
-EventCode : 0xFF (HCI_LE_ExtEvent)
-Data Length : 0x06 (6) bytes(s)
Event : 0x067F (GAP_HCI_ExtentionCommandStatus)
Status : 0x00 (Success)
OpCode : 0xFD9B (GATT_Notification)
DataLength : 0x00 (0)
Dump(Rx):
04 FF 06 7F 06 00 9B FD 00

E文的论坛里,这位老兄问了我同样的问题,没人回答。5555555555555

Read GATT_notification send from central to peripheral

Poor

Poor

Fair

Fair

Average

Average

Good

Good

Excellent

Excellent

看来TI要推广这颗芯片还需要多做一些demo代码呀。

不能说我的demo就是单向通信的,另一个方向通信你们自己去研究。

客户大都不是你那一行的专家,怎么弄呀?

蓝牙仅仅是个通讯工具而已,客户应该专注自己的应用,而通信部分应该拿来就能用。

没办法就用那个每次只能发1个字节的了。为了发8个有效字节,总共发了72个字节,效率太低了。还好设置只是偶尔操作。

Hi Liao Wei,

理解你作为应用开发者的考量,  

但是, 希望你也能理解, TI 提供的这些不是简单的demo, 都是蓝牙认证协会标准的profile, 所有的这些profile, 包括下面的host端跟芯片的controller端还有射频RF端, 都是过了蓝牙认证协会的认证的, 每一个profile都要花费一大笔钱, 而且TI都把这些代码开放, 供用户使用, 免得客户再去花精力跟财力去过认证. 所以TI是投入了大量人力物力在这个上面的, TI已经提供了最大限度的开放.

提供的demo里面是有central端的.

请你参考一下 SimpleBLECentral 的代码, 里面有 GATT_WriteCharValue()调用的例子, 虽然也只是发送一个字节, 但是这个函数可以让你发送多个字节.

至于 GATT_Notification()为什么不能从central发, 这是BLE协议规定的, 最最基本的原则, notification和indication是从peripheral发送到central的数据通信方式, 而central到peripheral端的数据通信方式是read跟write.

所以作为应用开发者, 也希望有机会的话你也能稍微再仔细得去多看一点TI提供的实例代码, 如果更有时间或者兴趣的话, 可以去了解一下基本的BLE协议栈. 只有你对BLE有一定的了解, 这样你的产品开发才会有更好的前景, 就像汽车只是个交通工具, 你可以只是随便坐在上面, 别人带你去就能达到目的, 但是如果你自己会开车, 就能随意到达更远更有意思的地方, 不是吗?

TI很希望跟你们有互动, 一起进步!

hi  Yan

       我尝试用串口调试工具助手调试,可是在打开串口时提示串口已被占用?这是什么问题呢?

谢谢

我也遇到过这个问题,应该是关闭蓝牙工具BTool之后再打开串口调试工具,还不行就重新插一下。

hi  Yan

       我是初学者,正在使用CC2540MINI开发套件,我想知道,如果要想从DK发送数据到DONGLE上,是不是只能遵守domo里的数据发送规则,是不是只能调用GATT_Notification函数?这样效率很低,我想要发送到数据量比较大。是不是还有别的方法?非常期待您的回复。

谢谢

hi  Yan

       我是初学者,正在使用CC2540MINI开发套件,我想知道,如果要想从DK发送数据到DONGLE上,是不是只能遵守domo里的数据发送规则,是不是只能调用GATT_Notification函数?这样效率很低,我想要发送到数据量比较大。是不是还有别的方法?非常期待您的回复。

谢谢

Hi,Yan

        远端的characteristic在哪设置接收多个字节的呢?用的是官方SimpleBLEPeripheral代码

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top