從我的Arduino中,我正在使用Serial.print(「blah」)將多字節數據寫入串行,但在Objective-C中,-serialPort:didReceiveData:
(由ORSSerialPort提供)一次只能獲取1個字節的數據。有時候,它會一次抓取2個字節,但從來沒有全部4個。這是預期的嗎?如果是這樣,我怎樣才能讓它一次接收全部4個字節?爲什麼ORSSerialPort serialPort:didReceiveData NSData只有單字節?
阿爾杜伊諾:
void loop() {
Serial.print("blah");
delay(1000);
}
的OBJ-C:
- (void)serialPort:(ORSSerialPort *)serialPort didReceiveData:(NSData *)data {
NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@",string);
}
設置此方法中的斷點表明data
僅保持1個字節。
感謝您的解釋和建議的解決方案。我可能會加入一個抽象層來緩衝「數據包」。當我有一些時間的時候,我會在GitHub鏈接中對此進行評論。 – 695Multimedia