【发布时间】:2019-08-14 18:33:20
【问题描述】:
我编写了一个简单的代码,用于使用蓝牙串口发送 int 值。
发射器:
#include <SoftwareSerial.h>
#include "PWM.hpp"
PWM PWM(2);
SoftwareSerial BTSerial(8,9);
void setup()
{
Serial.begin(9600);
Serial.println("Go");
BTSerial.begin(9600);
BTSerial.write("AT+INQ\r\n");
delay(10000);
BTSerial.write("AT+CONN1\r\n");
delay(100);
PWM.begin(true);
}
void loop()
{
int pwmValue = PWM.getValue();
Serial.println(pwmValue);
BTSerial.write(pwmValue);
delay(100);
}
发射器部分Serial.println的输出是正确的:
1500
但在接收器部分不是。这是接收者的代码:
#include <SoftwareSerial.h>
SoftwareSerial BTSerial(8, 9);
void setup() {
Serial.begin(9600);
BTSerial.begin(9600);
BTSerial.write("AT+NAME=Remote\r\n");
}
void loop() {
if (BTSerial.available()) {
int pwmValue = BTSerial.read();
Serial.println(pwmValue);
}
Serial.println 的错误输出是:
220
我认为问题在于类型转换。
【问题讨论】:
-
@EugeneSh。如果你有答案,请写在答案部分,而不是这里。谢谢。
-
哦。对不起。我已经修复了它,但价值仍然是错误的。现在
220不是⸮⸮,但这是错误的。正确值为1500