[英]C# GUI to Arduino: Serial Data Not Working
我正在尝试通过 usb 连接向我的 arduino 发送 integer。 使用草图监视器时,我可以验证代码是否有效; 但是,当使用 C# .NET GUI 时,我无法正常工作。
我知道数据是通过 arduino 上点亮的 LED 发送的。
我在文本框中输入 RPM,将其转换为 4 个字节(整数)并写入。 这是图形用户界面代码:
RPMMove = Convert.ToInt32(tbRPM.Text);
byte[] bRPM = BitConverter.GetBytes(RPMMove);
port.Write(bRPM, 0, 4);
在 arduino 上:
void setup()
{
Serial.begin(9600);
Serial.setTimeout(100);
}
void loop()
{
while (Serial.available() > 0)
{
i = Serial.parseInt();
stepper.setRPM(i); //move motor of other library
//Serial.println(i); //I get the correct integer via the arduino monitor here.
}
}
parseInt
以及当您在控制台中键入数字时它起作用的事实都表明设备希望将字符串作为文本发送。 所以不要使用BitConverter
,而是:
byte[] bRPM = Encoding.Ascii.GetBytes($"{RPMMove}\r\n");
您可能需要调整行尾,自然使用终端仿真器(“控制台”)中配置的相同行尾应该可以工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.