通过串口发送数据

时间:2019-11-29 02:12:14

标签: c#

我想为滚动基础编程。底座的TX,RX和GND连接使用rs232,但我的笔记本电脑上没有此端口。因此,我正在使用适配器USB-RS232。该连接之所以有效,是因为当我在Putty中输入不同的命令时,机器人会移动。 因此,在Visual Studio中,我用以下行创建一个串行端口:

SerialPort serialPort1 = new SerialPort("COM7", 115200, Parity.None, 8, StopBits.One);

之后,我将其连接:

try
{
    serialPort1.Open();
}
catch (Exception ex)
{
    MessageBox.Show("Please connect to the base");
}

因此打开了串行端口。最后,我发送缓冲区:

if (serialPort1.IsOpen)
{
    string str = "!m 1 300";
    serialPort1.Write(str);
    System.Console.WriteLine(str);
}

但是它不起作用,机器人也不会移动。在Putty中,输入相同的命令:

!m 1 300

也许我忘记了什么?

2 个答案:

答案 0 :(得分:0)

使用serialPort1.Write(string)可能更合适。
如果您使用serialPort1.WriteLine(string),它将在字符串之后发送换行符,另一端的设备可能不希望这样。

答案 1 :(得分:0)

您正在写入控制台,而不是串行端口。试试这个:

if (serialPort1.IsOpen)
{
    string str = "!m 1 300";
    serialPort1.Write(str);
}

您还应该注意overloads,并知道它使用的默认编码是ASCII编码。