【发布时间】:2019-09-26 18:18:17
【问题描述】:
我正在使用连接在 COM2 端口上的 Dallas Key。 dallas Key 在打开时有一个值(例如 00 AA BB),在它被移除时有一个值(例如 00 00 00)。 如何持续准备好 COM2 端口的值,以检测它的变化并根据它采取行动(winforms 应用程序)。
我尝试通过端口名称获取值并读取它,但它说在某些情况下访问被拒绝。
private SerialPort port = new SerialPort("COM2",9600, Parity.None, 8, StopBits.One);
static void Main(string[] args)
{
SerialPortProgram();
}
private static void SerialPortProgram()
{
port.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived);
port.Open();
Console.ReadLine();
}
private void port_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
Console.WriteLine(port.ReadExisting());
}
我想一直监听COM2端口值而不会对应用程序速度产生太大影响,获取COM2端口(我的达拉斯键)打开时的值并检测它何时关闭并采取具体行动。
【问题讨论】:
-
尝试“以管理员身份”运行您的应用程序
-
你不能多次打开端口,否则你会得到你提到的错误。您需要确保将其打开,对所有串行通信保持打开状态,并在完成后将其关闭。否则,我不明白你的问题,你能解释一下吗?代码的哪一部分不起作用?只要有 COM 流量,就会触发 Data Received 事件,所以这对我来说是正确的。
标签: c# winforms serial-port key pos