【发布时间】:2014-06-30 09:58:06
【问题描述】:
我正在尝试从超声波燃料传感器(the link)读取数据。该设备的波特率为 9600。该设备基本上定期发送数据。我可以使用终端读取 PC 中的输出软件。下面是一个示例。
例如:*XD,205B,00,0000,0031,0000,0000,null#
我正在尝试通过设备中提供的串行端口将此设备连接到 Arduino,当我看到串行监视器时,输出不正确。下面是示例。
5320215115451166102572432302302432302302302302432303816623024323023023023024323023023023051822281141463
String incoming_char; // Will hold the incoming character from the Serial Port.
void setup()
{
//Initialize serial ports for communication.
Serial.begin(9600);
Serial1.begin(9600);
Serial.println("Starting Communication with Fuel Sensor");
}
void loop()
{
//If a character comes in from the cellular module...
if(Serial1.available() >0)
{
incoming_char=String(Serial1.read()); // Get the character from the cellular serial port.
Serial.print(incoming_char); // Print the incoming character to the terminal.
}
}
Arduino 由 USB 供电,设备由 12V 电源供电。 来自设备的电压电平 Tx-GND=-5.44V,Rx-GND=-8.22V。
我最初认为问题可能是因为电压范围并制作了一个分压器电路并为 Arduino 提供了成比例的电压。即使这样也不起作用。 那么,出了什么问题?请指导我。
【问题讨论】:
-
你在混淆 ASCII 和二进制数据。 Something 将字符串中的字符显示为整数而不是字符。
-
雅汉斯,我切换到 Serial.write,现在它正在打印垃圾字符。显然,这个字符集正在转换为数字。
标签: serial-port arduino sensors