This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

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

Other Parts Discussed in Thread: CC2540

我现在知道一种方式可以做简单的设置就是去写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

    PoorPoorFairFairAverageAverageGoodGoodExcellentExcellent
  • 看来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代码