你好我是iOS和目标c的新手,这是我的第一个应用程序,我不知道如何调试这个问题。
应用程序向STM芯片发送二进制文件(通过BT进行固件更新)。当我在ios9 iphone 6上运行我的应用程序时,它运行良好STM芯片闪存没有问题。当我在iOS8上运行应用程序时,它不起作用。
信息流: Central发送特征X = 0x61
中的字符` _dataToSend1 = [@"a" dataUsingEncoding:NSUTF8StringEncoding];
[_discoveredPeripheral writeValue:_dataToSend1 forCharacteristic:_WriteChX type:CBCharacteristicWriteWithResponse];
[_discoveredPeripheral readValueForCharacteristic:_WriteChX];`
外围设备应通过特征Y通知回复:
- (void)peripheral:(CBPeripheral *)peripheral didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error{
NSLog(@"Here");
if ([characteristic.UUID isEqual:[CBUUIDUUIDWithString:TRANSFER_CHARACTERISTIC_UUIDY]]) {
NSLog(@"Recived");
.
.{some other stuff}
.
}
在iOS 9上我收到通知,在旧版本上程序挂起,因为没有来自CHY的响应,如果我在旧版iOS上的调试控制台中将值写入CHX时设置了制动点它也有效吗?!我真的不知道如何调试这个......
编辑:所以我可以成功读取特征X,即发送了值61。但似乎该设备没有收到它。如果我第二次发送相同的命令0x61然后我通过通知得到正确的响应...所以我找到了解决但不是原因......
答案 0 :(得分:0)
尝试在写入和读取之间给出一些时间间隔。