我正试图通过蓝牙从智能手机向我的Arduino发送一些号码。我已将所有内容连接起来并且工作正常,但我的问题在于发送负数。
例如,我尝试发送-173(bin:11111111 01010011
)它接收83(bin:00000000 01010011
),这只是第二个字节。我试图使用long或double或signed int而不是整数,但我失败了。
以下是我正在使用的代码:
#include <SoftwareSerial.h>// import the serial library
SoftwareSerial Genotronex(51, 11); // RX, TX
int ledpin=53; // led on D13 will show blink on / off
BluetoothData; // the data given from Computer
void setup() {
// put your setup code here, to run once:
Genotronex.begin(9600);
Serial.begin(9600);
Genotronex.println("Bluetooth On please press 1 or 0 blink LED ..");
pinMode(ledpin,OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
if (Genotronex.available()){
BluetoothData=Genotronex.read();
Serial.print(BluetoothData);
}
}
delay(100);// prepare for next data ...
}
答案 0 :(得分:0)
尝试使用Serial.write而不是Serial.print。 我有一个类似的设备,它适用于Serial.write
答案 1 :(得分:0)
原因是因为print适用于各种不同类型,并且只能写入字节类型(在C中是0..255的无符号值)。