Access to the port #39;COM5#39; is denied(拒绝访问端口“COM5)
问题描述
我收到以下错误消息访问端口COM5"被拒绝.
从我的表单运行以下方法时.我尝试从设备管理器的端口设置中输入正确的波特率 9600.我也尝试过通过 Portmon 访问设备,但有一个错误阻止我连接.有什么办法可以解决这个问题?
I get the following error message Access to the port 'COM5' is denied.
when running the method below from my form. I have tried entering the right baud rate of 9600 from the port setting of my device manager. I have also tried accessing the devices through Portmon but there is a bug that prevents me from being connected. Any alternative to solve this problem?
//Fields
List<string> myReceivedLines = new List<string>();
//subscriber method for the port.DataReceived Event
private void DataReceivedHandler(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
SerialPort sp = (SerialPort)sender;
while (sp.BytesToRead > 0)
{
try
{
myReceivedLines.Add(sp.ReadLine());
}
catch (TimeoutException)
{
break;
}
}
}
protected override void SolveInstance(IGH_DataAccess DA)
{
string selectedportname = default(string);
DA.GetData(1, ref selectedportname);
int selectedbaudrate = default(int);
DA.GetData(2, ref selectedbaudrate);
bool connecttodevice = default(bool);
DA.GetData(3, ref connecttodevice);
port.DtrEnable = true; //enables the Data Terminal Ready (DTR) signal during serial communication (Handshaking)
port.Open(); //Open the port
if (!(port.IsOpen == true)) port.Open();
if (connecttodevice == true)
{
port.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
DA.SetDataList(0, myReceivedLines);
}
推荐答案
需要将SerialPort的使用封装在一个使用声明或实现IDisposable
You need to wrap the use of SerialPort in a using statement or implement IDisposable
// Dispose() calls Dispose(true)
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
// The bulk of the clean-up code is implemented in Dispose(bool)
protected virtual void Dispose(bool disposing)
{
if (disposing)
{
// free managed resources
if (_serialPort != null)
{
_serialPort.Dispose();
_serialPort = null;
}
}
// free native resources if there are any.
}
这篇关于拒绝访问端口“COM5"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:拒绝访问端口“COM5"


基础教程推荐
- 将事件 TextChanged 分配给表单中的所有文本框 2022-01-01
- 全局 ASAX - 获取服务器名称 2022-01-01
- 首先创建代码,多对多,关联表中的附加字段 2022-01-01
- 错误“此流不支持搜索操作"在 C# 中 2022-01-01
- JSON.NET 中基于属性的类型解析 2022-01-01
- 在 VS2010 中的 Post Build 事件中将 bin 文件复制到物 2022-01-01
- 经典 Asp 中的 ResolveUrl/Url.Content 等效项 2022-01-01
- 从 VS 2017 .NET Core 项目的发布目录中排除文件 2022-01-01
- 如何动态获取文本框中datagridview列的总和 2022-01-01
- 是否可以在 asp classic 和 asp.net 之间共享会话状态 2022-01-01