c#串口提示端口访问被拒绝
如下代码请教大神====使用是串口调试助手进行调试,但是在调试的时候出现老是提示“端口访问拒绝”,如果把串口调试助手关掉就不出现这个问题,请问如何解决====usingS...
如下代码请教大神
====
使用是串口调试助手进行调试,但是在调试的时候出现老是提示“端口访问拒绝”, 如果把串口调试助手关掉就不出现这个问题,请问如何解决
====
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;
namespace WindowsFormsApplication3
{
public partial class Form1 : Form
{
SerialPort serialPort1 = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One); //初始化串口设置
public delegate void Displaydelegate(byte[] InputBuf);
Byte[] OutputBuf = new Byte[128];
public Displaydelegate disp_delegate;
public Form1()
{
disp_delegate = new Displaydelegate(DispUI);
serialPort1.DataReceived += new SerialDataReceivedEventHandler(Comm_DataReceived);
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
try
{
if (button1.Text == "打开")
{
if (!serialPort1.IsOpen)
{ serialPort1.Open(); }
button1.Text = "关闭";
}
else
{
serialPort1.Close();
button1.Text = "打开";
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
}
void Comm_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
Byte[] InputBuf = new Byte[128];
try
{
serialPort1.Read(InputBuf, 0, serialPort1.BytesToRead); //读取缓冲区的数据直到“}”即0x7D为结束符
//InputBuf = UnicodeEncoding.Default.GetBytes(strRD); //将得到的数据转换成byte的格式
System.Threading.Thread.Sleep(50);
this.Invoke(disp_delegate, InputBuf);
}
catch (TimeoutException ex) //超时处理
{
MessageBox.Show(ex.ToString());
}
}
public void DispUI(byte[] InputBuf)
{
//textBox1.Text = Convert.ToString(InputBuf);
ASCIIEncoding encoding = new ASCIIEncoding();
richTextBox1.Text = encoding.GetString(InputBuf);
}
}
} 展开
====
使用是串口调试助手进行调试,但是在调试的时候出现老是提示“端口访问拒绝”, 如果把串口调试助手关掉就不出现这个问题,请问如何解决
====
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;
namespace WindowsFormsApplication3
{
public partial class Form1 : Form
{
SerialPort serialPort1 = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One); //初始化串口设置
public delegate void Displaydelegate(byte[] InputBuf);
Byte[] OutputBuf = new Byte[128];
public Displaydelegate disp_delegate;
public Form1()
{
disp_delegate = new Displaydelegate(DispUI);
serialPort1.DataReceived += new SerialDataReceivedEventHandler(Comm_DataReceived);
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
try
{
if (button1.Text == "打开")
{
if (!serialPort1.IsOpen)
{ serialPort1.Open(); }
button1.Text = "关闭";
}
else
{
serialPort1.Close();
button1.Text = "打开";
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
}
void Comm_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
Byte[] InputBuf = new Byte[128];
try
{
serialPort1.Read(InputBuf, 0, serialPort1.BytesToRead); //读取缓冲区的数据直到“}”即0x7D为结束符
//InputBuf = UnicodeEncoding.Default.GetBytes(strRD); //将得到的数据转换成byte的格式
System.Threading.Thread.Sleep(50);
this.Invoke(disp_delegate, InputBuf);
}
catch (TimeoutException ex) //超时处理
{
MessageBox.Show(ex.ToString());
}
}
public void DispUI(byte[] InputBuf)
{
//textBox1.Text = Convert.ToString(InputBuf);
ASCIIEncoding encoding = new ASCIIEncoding();
richTextBox1.Text = encoding.GetString(InputBuf);
}
}
} 展开
2个回答
2018-04-13
展开全部
一个串口号只能由一个程序开启使用,调试运行程序前把串口调试助手关闭就行
我用的Techcon串口大师,开启关闭很方便
我用的Techcon串口大师,开启关闭很方便
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
Storm代理
2023-07-25 广告
2023-07-25 广告
StormProxies是一家国内优质海外HTTP代理商,拥有一个庞大的IP资源池,覆盖200多个地区,IP数量大且匿名度高。其优点还包括超高并发、稳定高效、技术服务等特点,同时提供HTTP、HTTPS以及SOCKS5协议支持。此外,Sto...
点击进入详情页
本回答由Storm代理提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询