#include "BluetoothSerial.h"
#if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth is not enabled! Please run `make menuconfig` to and enable it
#endif
BluetoothSerial SerialBT;
void setup() {
SerialBT.begin("BTMODE");
Serial.begin(115200);
}
int k;
void loop() {
while (SerialBT.available()) {
k=SerialBT.read();
Serial.println(k);
}
}
以上是我的代码,输入3后得到的输出是:511310怎么办?
2条答案
按热度按时间58wvjzkj1#
您既不是在发送也不是在接收
int
。51 13 10
是ASCII * 字符 *'3' <carriage-return> <line-feed>
的序列,例如,如果您在终端 * 键入 * 字符串,这是预期的。然后,您将接收单个字符并打印其 * 整数 * 值。
您要么需要发送 * binary * 数据,然后将各个 * bytes * 重新组合成一个整数(对于这种情况,双方需要就整数的大小和字节顺序达成一致),要么读取一个 * line * 并解释字符串和整数的十进制表示。
例如:
请注意,您也可以在此处替换:
与:
这样做可能会导致
loop()
中的其他代码的行为更具确定性,因为它每次迭代只读取一个字符,而不是所有可用字符,这将花费可变的时间量来处理。6bc51xsx2#
这是我的工作守则,希望对你有帮助