![](/img/trans.png)
[英]Casting an unsigned int + a string to an unsigned char vector
[英]Casting from string to unsigned char* leaves garbage
这是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;
}
您还需要将字符串command.c_str()
复制到notification
:
notification = new char[length + 1];
strcpy(notification , command.c_str());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.