将字符串数据从串行端口解析为整数

时间:2018-07-13 14:32:03

标签: c# parsing arduino

我正在从Arduino Nano(电位计的模拟输入)向C#程序发送串行数据。它在控制台上显示正常,但是我需要使用数字通过vJoy控制操纵杆。我需要将字符串(例如“ 932”)转换为整数。我不能简单地使用int.Parse(string),因为它说:

  

输入字符串的格式不正确。

static void Main(string[] args)
{
    _serialPort = new SerialPort();
    _serialPort.PortName = "COM9";
    _serialPort.BaudRate = 9600;
    _serialPort.Open();

    while (true)
    {
      string a = _serialPort.ReadExisting();
      Console.Write(a);
    }
}

由于使用Console.Write在新行上,因此似乎每遍都发送新行命令。如果我们可以完全剥离字符串,那么解析可能会起作用。

2 个答案:

答案 0 :(得分:0)

有多种方法可以将C:\windows\System32转换为stringint是其中之一,但是和int.Parse一样,如果您的字符串不是数字,则会引发异常

为避免异常,您可以使用Convert.ToInt32

TryParse方法类似于TryParseParse方法,但是如果转换失败,Convert.ToInt32方法不会引发异常。

别忘了清理您的字符串

TryParse

答案 1 :(得分:0)

发现了问题。arduino发送串行数据的速度太快。添加了一个延迟(100);在循环结束时解决了该问题。