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.

[参考译文] CC2541:将自己的功能添加到 BLE 堆栈的示例中(简单的 UART 交换)

Guru**** 2587365 points
Other Parts Discussed in Thread: CC2541, CC2540

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/598010/cc2541-add-own-function-to-examples-from-ble-stack-simple-uart-exchange

器件型号:CC2541
主题中讨论的其他器件: CC2540

您好!

我有几个具有 CC2541的模块:

我已通过调试器从 BLE 堆栈(BLE-CC254x-1.4.2.2)上传 SimpleBLEPeripheral 示例。

现在、我能够通过 Android 和 SmartRF Studio 的电话进行查看。

因此、我假设所有设置/接线都正常。

如何将我自己的函数添加到此项目中?

例如、通过 UART 发送一些字节。

我已将 USB-UART 转换器 ()连接  到 P03和 P02引脚,并希望在开始时通过终端查看一些数据包。  

(此外、我还想了解如何将 I2C 与此模块配合使用、但我们将其推迟到后面)

正如我所理解的(如果我错了请纠正我)、在  SimpleBLEPeripheral_Main.c  中、我没有什么可做的、  

函数

/*启动 OSAL */
osal_start_system(); 

调用  

OSAL_RUN_SYSTEM (); 

无限循环。 在该函数中、仅处理任务和事件。 那么、我  需要使用 simpleBLEPeripheral.c、我想吗?

据我所知、我需要创建自己的任务吗?

我查看了另一个示例并确定了我需要使用的示例  

OSAL_START_timerEx () 

设置中断时间。

但如何在所有系统中添加我自己的函数?

我尝试添加这个  

void custom_func_test ()
{
uint8 testbuf [5]={7、6、5、4、3};

OSAL_START_timerEx (1、2、100);
SimpleBLEPeripheral_ProcessEvent (11、1);
HalUARTWrite (1、testbuf、5);
} 

但我不知道我需要在哪里调用它。 (尝试在 simpleBLEperipheral_main.c 中运行 OSALsystem 之前放入 main 函数,但调试器 dint 甚至不能到达那里)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、AIU2017、

    为什么不查看我们的示例项目以获得有关此方面的指导? (或者查看分步指南?)

    processors.wiki.ti.com/.../Category:BluetoothLE

    并查看 CC254x 蓝牙低耗能下的内容

    此致、
    反叛分子
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好,Rebel,

    遗憾的是、我遇到了 SimpleBLEPeripheral_SerialInterface 示例问题(在本主题 https://e2e.ti.com/support/wireless_connectivity/bluetooth_low_energy/f/538/t/598254中进行了介绍)。

    我现在正在学习 SWRU271 (CC2540和 CC2541低功耗 BluetoothRegistered软件开发人员参考指南),但本手册非常复杂-仍然不明白我可以在哪里插入我自己的函数以及如何从 osal_run_system()将其插入永远循环。

    我已经从   SimpleBLEPeripheral_SerialInterface 和原始 SimpleBLEPeripheral 中检查了 OSAL_SimpleBLEPeripheral.c 和 simpleBLEPeripheral.c 文件,它们之间的区别只有几个:

    simpleBLEPeripheral.c:

    #if defined (serial_interface)
    #include "serialInterface.h"
    #endif
    
    //call、以便为驱动程序
    HCI_EXT_HaltDuringRfCmd (HCI_EXT_HALT_PERT_RAT_DISABLE)留出更多 CPU 时间; 

    (+广播设置中的某些判断对错)

    simpleBLEPeripheral.h:

    仅添加了一个字符串

    uint8 Application_StartAdd插(uint16持续时间、uint16间隔); 

    OSAL_SimpleBLEPeripheral.c:

     

    #if defined (serial_interface)
    #include "serialInterface.h"
    #endif
    
    
    GATTServApp_ProcessEvent、 //任务10
    #if defined (serial_interface)
    SerialInterface_ProcessEvent,
    #endif
    
    GATTServApp_Init( taskID++);
    #if defined (serial_interface)
    SerialInterface_Init(TaskID++);
    #endif