我对Arduino的温度测量有疑问。在Arduino IDE串行监视器中对其进行测试时,我的响应如下:
23.37
23.37
23.37
但是通过c#.net核心应用程序快速重新连接,控制台输出给我:
23.
44
23.
44
23.4
4
我的Arduino代码很短,看起来像:
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 2
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
void setup(void)
{
// start serial port
Serial.begin(9600);
// Start up the library
sensors.begin();
}
void loop(void)
{
sensors.requestTemperatures();
delay(1500);
Serial.println(sensors.getTempCByIndex(0));
delay(100);
}
具有接收功能的C#代码部分:
soc.ReceiveMessage(port.ReadExisting());
其中ReceiveMessage方法只是
public void ReceiveMessage(string msg)
{
Console.WriteLine(msg);
soc.WebSocketServices.Broadcast(msg);
}
我在做什么错?
答案 0 :(得分:0)
将Serial.begin(9600)
更改为Serial.begin(115200)
并在C#代码中的波特率中更改此值对我有所帮助。大约有90%的邮件收到良好。但是我不知道为什么有帮助。