我正在使用连接在COM2端口上的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端口的值(我的达拉斯密钥),并检测何时关闭并具体说明行动。
答案 0 :(得分:1)
即使您没有描述实际抛出的行,也可以通过阅读文档找到我发现的内容
例外
UnauthorizedAccessException
拒绝访问该端口。-或-
当前进程或系统上的另一个进程已经具有 指定的COM端口是通过SerialPort实例打开还是通过 非托管代码。
您没有打开端口的权限,或者您已经打开了该端口,您需要确定它是哪一个并适当地进行处理
注意:如果您使用USB来进行com端口通信,则端口可能会有些变幻
答案 1 :(得分:0)
下面的代码在我用控制台(项目是控制台应用程序)编写时起作用,但是当我改回到Windows应用程序并尝试写标签或更改变量值时,此代码无效:
mask