我想通过使用命令“POS;”得到我的电机的位置,但是如果我能得到数字,我得到这个输出“a⌂▲yI°y” 然后,我不时得到空的答案,我认为需要一些时间才能通过串口输出。我必须添加到我的代码中才能获得完整的输出显示?
Manual controller(更新手册)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO.Ports;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
SerialPort sp = new SerialPort();
sp.PortName = "COM1";
sp.BaudRate = 9600;
sp.Open();
sp.Encoding = System.Text.Encoding.GetEncoding(28591);
if (sp.IsOpen)
{
sp.Write("ENA;");
sp.Write("POS;");
string msgPos = sp.ReadExisting();
Console.WriteLine(msgPos);
sp.Write("OFF;");
sp.Close();
Console.ReadKey();
}
}
}
}
答案 0 :(得分:0)
只需在发送写入和读取命令之间添加Thread.Sleep(50)
即可。如果不尝试更长的时间,50毫秒就足够了。
//Do something
sp.Write("POS;");
Thread.Sleep(50);
string msgPos = sp.ReadExisting();
//Do something else
我在您发布的手册中找不到任何命令POS;
。你的意思是第15页的FBK吗?