[英]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.