我正在编写一个简单的程序来在 C# 中移动步进电机。我过去在 C++ 方面有一些经验,但决定过渡,因为我必须自学一点 C++。
以前,我通过 PuTTY 使用串行命令控制电机(使用 Applied Motion ST5 步进控制器)。我的想法是,我可以通过打开正确的 COM 端口(工作正常,因为当我输入非工作端口号时崩溃)并发送一个字符串来使用 C# 发送相同的命令。但是,当我通过串行终端(FL1000,后跟回车,它告诉电机顺时针移动 1000 步)发送我一直在使用的相同命令的字符串时,电机什么也不做。WriteLine 应该是在这里使用的正确方法,因为它发送字符串然后返回,对吗?
有没有人看到任何明显的错误会使我的字符串无法进入控制器?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO.Ports;
namespace ConsoleApp3
{
class Program
{
static SerialPort comPort;
static void Main()
{
//These values in the declared serial port match what my device manager says.
comPort = new SerialPort("COM6", 9600, Parity.None, 8, StopBits.One);
comPort.ReadTimeout = 5000;
comPort.WriteTimeout = 5000;
comPort.Open();
//Pauses for a moment so that I can see the console otuput.
System.Threading.Thread.Sleep(TimeSpan.FromSeconds(3));
string command = "FL1000";
Console.WriteLine("Moving Motor...");
//Tells the controller to move the motor 1000 steps clockwise
comPort.WriteLine(command);
//confirms that the code made it past the comPort writeline
Console.Write("Command Sent");
//Pauses for a moment so that I can see the console output.
System.Threading.Thread.Sleep(TimeSpan.FromSeconds(3));
}
}
}
我希望这会使电机移动 1000 步。我看到的唯一结果是我的“标记”出现在控制台上。程序无错误退出。
先感谢您!