我有一个 Arduino Uno R3 和一个蓝牙伴侣。将 Mate 链接到 Arduino 硬件串行(引脚 0,1)时,我可以从连接的设备一次发送多个字符,但是当我尝试使用软件串行(例如使用引脚 4,2)做同样的事情时,我只得到第一个字符和其余字符都搞砸了。
我的代码:
#include <SoftwareSerial.h>
int bluetoothTx = 4;
int bluetoothRx = 2;
SoftwareSerial bluetooth(bluetoothTx, bluetoothRx);
void setup()
{
Serial.begin(115200);
bluetooth.begin(115200);
}
void loop()
{
if(bluetooth.available())
{
Serial.print((char)bluetooth.read());
}
}
例如,如果我从我的 android 设备发送这个字符: abcd我在串行监视器中得到这个: a±,ö
这段使用硬件串行的代码(我将蓝牙连接到引脚 0 和 1)工作得很好:
void setup()
{
Serial.begin(115200);
}
void loop()
{
if(Serial.available())
{
Serial.print((char)Serial.read());
}
}
我什至尝试更改波特率,但没有帮助
如果我一个接一个地发送字符,它可以正常工作,但我希望能够将它们作为字符串发送。