您好:
我用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:
关闭低功耗没有?
TI中文支持网



