【发布时间】:2015-10-09 13:34:09
【问题描述】:
您好,我是 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 写入值时设置了一个刹车点,它也可以工作?!我真的不知道如何调试这个......
编辑:所以我可以成功读取发送值 61 的特征 X。但似乎设备没有收到它。如果我第二次发送相同的命令 0x61,那么我会通过通知得到正确的响应......所以我找到了解决方法,但没有找到原因......
【问题讨论】:
标签: ios objective-c iphone core-bluetooth