带有Arduino UNO的C#System.IO.Ports-接收两条不同的线

时间:2019-05-12 10:15:23

标签: c# arduino

我对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); 
}

我在做什么错?

1 个答案:

答案 0 :(得分:0)

Serial.begin(9600)更改为Serial.begin(115200)并在C#代码中的波特率中更改此值对我有所帮助。大约有90%的邮件收到良好。但是我不知道为什么有帮助。