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

app与CC2541连接问题(notify)

我的产品涉及到大数据传送(230多字节),正常情况下,在串口写入再通过notify上传到app,和从app下发数据到BLE设备都正常接收。
但我现在遇到问题是:
通过上述流程,app无法接收到数据(会引起断开连接),事实上数据都正常采集(可通过串口打印出来)。
此问题该怎么解?
YiKai Chen:

檢查看看是否数据采集影響了連線,讓連線断開

Dace Feng1:

回复 YiKai Chen:

YC:谢谢解答!这个该怎么检查呢?另外我的notify不是一直不上传,偶尔也是可以的。

da qin zheng sheng:

每次传送20个字节试试,另外可以用抓包软件分析。

da qin zheng sheng:

回复 da qin zheng sheng:

估计需要修改连接参数。

YiKai Chen:

回复 Dace Feng1:

试试降低每次传送字节个數

Viki Shi:

无法接收到所有数据还是一部分数据?

Dace Feng1:

回复 Viki Shi:

是所有。
我尝试过在IIC采集数据后,通过按按键上传数据,也接受不了,而且出现断开连接。
不调用IIC采集数据,数据可以正常上传。貌似是IIC的问题,下面是我的程序,还请帮忙看看

static void serialNetProfileChangeCB(uint8 paramID,uint8 len)
{switch( paramID ){case SERIALNETPROFILE_TRX:uint8 bBuf[20]={0};//读取数据SerialNetProfile_GetParameter( SERIALNETPROFILE_TRX, bBuf, len );if((bBuf[0] == 0x12)&&(bBuf[1] == 0x35)&&(bBuf[2] == 0x56)&&(bBuf[3] == 0x7A)){ NPI_WriteTransport(bBuf,len);Learn_mode(dataBuff); //进入学习模式}break;default:// should not reach here!break;}
}
//进入学习模式================================================================
void Learn_mode(uint8 *ReceiveBuff)
{Learn_start2();RemoteDelayms(15000); //延时55mswhile(BUSY == 0);// busy 低电平 进入学习状态//RemoteDelayms(3000); //延时12msif(BUSY == 1){DelayTime(12);readI2C2(ReceiveBuff);//学习模式下,读取数据,230字节}
}

//读取数据===================================================================
uint8 readI2C2(char *readtempbuf)//UINT8
{ uint8 bValue; uint8 i=0; uint8 checksum;
I2COpen(); DelayTime(DELAY_TIME);
SetSCLLow(); DelayTime(DELAY_TIME); DelayTime(DELAY_TIME); SetSCLHigh(); RemoteDelayms(DELAY_ST); //20ms I2CStart(); DelayTime(DELAY_TIME);
//—————————————-//write I2CWriteData(0x30); DelayTime(DELAY_TIME);//address point I2CWriteData(0x62); DelayTime(DELAY_TIME);//————————————— //read I2CStart(); DelayTime(DELAY_TIME);
I2CWriteData(0x31); DelayTime(DELAY_TIME);I2CReadData(&bValue);DelayTime(DELAY_TIME);if(bValue != 0x00) {I2CStop();DelayTime(DELAY_TIME);I2CClose();DelayTime(DELAY_TIME);return 0; }i = 0; readtempbuf[i] = bValue;
checksum = 0xc3; //0xc3;for(i = 1; i < 230; i++)//read:learndata(109B)+120=230 {I2CReadData(&bValue);DelayTime(DELAY_TIME);readtempbuf[i] = bValue; checksum += bValue; }I2CReadData(&bValue);DelayTime(DELAY_TIME);I2CStop(); DelayTime(DELAY_TIME); I2CClose(); DelayTime(DELAY_TIME);if(bValue != 0xFF){return 0;} else{ return 1;}
}

Viki Shi:

回复 Dace Feng1:

收到,感谢提供反馈

赞(0)
未经允许不得转载:TI中文支持网 » app与CC2541连接问题(notify)
分享到: 更多 (0)