我正在从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
在新行上,因此似乎每遍都发送新行命令。如果我们可以完全剥离字符串,那么解析可能会起作用。
答案 0 :(得分:0)
有多种方法可以将C:\windows\System32
转换为string
。 int
是其中之一,但是和int.Parse
一样,如果您的字符串不是数字,则会引发异常
为避免异常,您可以使用Convert.ToInt32
TryParse
方法类似于TryParse
或Parse
方法,但是如果转换失败,Convert.ToInt32
方法不会引发异常。
别忘了清理您的字符串
TryParse
答案 1 :(得分:0)
发现了问题。arduino发送串行数据的速度太快。添加了一个延迟(100);在循环结束时解决了该问题。