【发布时间】:2019-12-02 09:34:50
【问题描述】:
我想编写一个滚动基地。底座的 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
也许我忘记了什么?
【问题讨论】:
-
您正在向控制台写信?你的意思是写到serialPort吗?
-
机器人是否有更基本的命令,例如 ping 或状态类型命令,您可以尝试验证您的串行通信是否正常工作?什么是机器人?您尝试使用的协议是什么?您可能只需要发送一个 CR 或某种行尾序列。可能喜欢:
"!m 1 300\n"(或使用serialPort1.WriteLine来完成同样的事情) -
使用Putty让机器人移动时,是否需要在输入
!m 1 300后按Enter?如果是这样,那么这将确认您需要发送一个行尾序列,正如我在之前的评论中描述的那样。
标签: c#