TI中文支持网
TI专业的中文技术问题搜集分享网站

关于simpleBLEPeripheral工程中main loop的问题咨询

您好:

我用CC2650做了一个蓝牙模块,在利用simpleBLEPeripheral工程开发时,在任务的主循环函数里加入了几个调用SPI的函数,发现在手机与蓝牙建立连接之前,是可以执行这些函数的,但是在手机与蓝牙建立连接之后,无法执行完这个函数,程序就卡在了其他地方,具体是什么地方未知,在disassembly里定位不到,请问是什么原因呢?

期待您的回复,谢谢!

Viki Shi:

具体是卡在哪里?
大概率是添加SPI的配置不对,建议按照我们的官方指导手册进行操作: processors.wiki.ti.com/…/Cc2640_Adding_a_UART_or_SPI_driver_to_a_Sample_Project

dan chen:

回复 Viki Shi:

您好:

具体卡在代码的哪个位置无法定位,从disassembly窗口来看每次都卡在同一个地方,如图所示。

我的main loop 函数和SPI初始化函数如下,请帮忙看一下有什么问题,非常感谢!

for (;;) {

    BLE_Polling();  //ICall相关    //SPI数据处理   if(events & BLE_SPI_EVT)   {     events &= ~BLE_SPI_EVT;     len = RecvDatabySPI(buffer); //从SPI接口接收数据     SendDatabyBLE(buffer,len); //数据利用蓝牙发送出去   }   if(!STATE_CD()) //DATA模式   {     DataMode();   }   else //CMD模式   {     CmdMode();   }}

 void BLE_SPI_Init(){  SPI_init();    SPI_Params_init(&SpiParams);  SpiParams.transferCallbackFxn = SPITransferCallback;  SpiParams.mode = SPI_SLAVE;   SpiParams.transferMode = SPI_MODE_CALLBACK;  SpiHdl = SPI_open(Board_SPI0, &SpiParams);    slaveTranData.count = 1;    slaveTranData.txBuf = NULL;                                                   //所要被写数据的地址  slaveTranData.rxBuf = &RxData;                      //接收数据所存放的地址  transferOK=SPI_transfer(SpiHdl, &slaveTranData);}

da qin zheng sheng:

关闭低功耗没有?

赞(0)
未经允许不得转载:TI中文支持网 » 关于simpleBLEPeripheral工程中main loop的问题咨询
分享到: 更多 (0)