Serial.write(5) 无法发送小数?
Serial.write(5) not able to send decimal?
我正在尝试,作为对 Serial.write int 值的测试:5,到串行监视器,如果收到,我想打印文本“SUCCESS!”到串行监视器。
但是在写 Serial.write((int)5);
时,我在串行监视器中得到的是:
我试过使用 Serial.println(5);效果很好,但我无法阅读它。
我的代码:
enum read_states {
Modtag_Adresse,
Modtag_Bit_Position_I_Adresse,
Modtag_Bit_Position_Vaerdi
};
enum read_states state;
void setup() {
state = Modtag_Adresse;
Serial.begin(9600);
}
void loop() {
if(state == Modtag_Adresse) {
Serial.write((int)5);
delay(1000);
if(Serial.available() > 0) {
int serialReceived = Serial.read();
if(serialReceived >= 0) {
// Receive value 5
Serial.print("SUCCESS!!");
}
}
}
else if(state == Modtag_Bit_Position_I_Adresse) {
//
}
else if(state == Modtag_Bit_Position_Vaerdi) {
//
}
else {
// Failure.
}
}
Serial.write(5)
将字节 5 发送到计算机。它显示为正方形,因为它不是字母、数字或符号的 ASCII 代码。
Serial.print(5)
发送 5(即 53)的 ASCII 码。
你写的东西看不懂的原因是Serial.write
向电脑发送数据,Serial.read
returns从电脑接收数据。如果它从 Arduino 程序读取数据,那将毫无意义,因为您不需要为此使用串行。
我正在尝试,作为对 Serial.write int 值的测试:5,到串行监视器,如果收到,我想打印文本“SUCCESS!”到串行监视器。
但是在写 Serial.write((int)5);
时,我在串行监视器中得到的是:
我试过使用 Serial.println(5);效果很好,但我无法阅读它。
我的代码:
enum read_states {
Modtag_Adresse,
Modtag_Bit_Position_I_Adresse,
Modtag_Bit_Position_Vaerdi
};
enum read_states state;
void setup() {
state = Modtag_Adresse;
Serial.begin(9600);
}
void loop() {
if(state == Modtag_Adresse) {
Serial.write((int)5);
delay(1000);
if(Serial.available() > 0) {
int serialReceived = Serial.read();
if(serialReceived >= 0) {
// Receive value 5
Serial.print("SUCCESS!!");
}
}
}
else if(state == Modtag_Bit_Position_I_Adresse) {
//
}
else if(state == Modtag_Bit_Position_Vaerdi) {
//
}
else {
// Failure.
}
}
Serial.write(5)
将字节 5 发送到计算机。它显示为正方形,因为它不是字母、数字或符号的 ASCII 代码。
Serial.print(5)
发送 5(即 53)的 ASCII 码。
你写的东西看不懂的原因是Serial.write
向电脑发送数据,Serial.read
returns从电脑接收数据。如果它从 Arduino 程序读取数据,那将毫无意义,因为您不需要为此使用串行。