這是C++新手問題。我有一個Arduino草圖以下代碼來傳輸藍牙低功耗UART通知。從字符串轉換爲無符號字符*葉垃圾
當command
是5個字符時,我在藍牙接收器端得到5個字符。但是,當我使用單個字符命令跟隨5個字符command
時,接收到的是單個字符,後面是前一個command
的最後3個字符。
實施例,
command
是-1,0t
。我收到的是-1,0t
。但下一個command
只是r
。我收到的是r,0t
。
這裏發生了什麼?我如何得到「r」?
int BLEsend(String command){
byte length = sizeof(command);
unsigned char* notification = (unsigned char*) command.c_str(); // cast from string to unsigned char*
Serial.print(length);
BLE.sendData(UART_SEND, notification, length);
Serial.print("Notification Sent: "); Serial.println(command);
delay(100);
return 1;
}
注意,'的sizeof(命令)'將*不*給你的字符串的長度。您需要使用['length'](http://arduino.cc/en/Reference/StringLength)成員函數。 – 2014-11-06 13:31:52
這就是問題所在!謝謝。你能否寫一個答案,我會接受。 (我覺得自己像個白癡)。 – Chirantan 2014-11-06 13:36:28