c#关于com口的一些问题
我用C#和ajax实现对com口数据的接受,但是现在有一个问题,我通过按钮来控制com口的打开和关闭状态,但是ajax中的timer控见定时的刷新数据,每一次刷新以后com口总是自动关闭,但是在下一次打开的时候又会出错,本人认为是释放没有完全,但总不能每次刷都重新去打开com口,有没有方法可以一次打开以后就一直打开,直到点击按钮才关闭,希望有高手可以指点,贴一些代码:
SerialPort comm = new SerialPort();
protected void Connect_Click(object sender, EventArgs e)
{
comm.PortName = "COM4";
comm.BaudRate = 9600;
comm.DataBits = 8;
comm.Parity = Parity.None;
comm.StopBits = StopBits.One;
try
{
comm.Open();
if (comm.IsOpen == true)
{
TextBox1.Text = "open";
}
else
{
TextBox1.Text = "not open";
}
comm.DataReceived += new SerialDataReceivedEventHandler(comm_DataReceived);
comm.WriteLine("TEMPA?");
Label1.Text = comm.ReadLine();
comm.WriteLine("TEMPB?");
Label1.Text = comm.ReadLine();
comm.WriteLine("TEMP?");
Label1.Text = comm.ReadLine();
comm.WriteLine("TEMPA?");
Label1.Text = comm.ReadLine();
}
catch { TextBox1.Text = "连接异常"; }
}
SerialPort comm = new SerialPort();
protected void Connect_Click(object sender, EventArgs e)
{
comm.PortName = "COM4";
comm.BaudRate = 9600;
comm.DataBits = 8;
comm.Parity = Parity.None;
comm.StopBits = StopBits.One;
try
{
comm.Open();
if (comm.IsOpen == true)
{
TextBox1.Text = "open";
}
else
{
TextBox1.Text = "not open";
}
comm.DataReceived += new SerialDataReceivedEventHandler(comm_DataReceived);
comm.WriteLine("TEMPA?");
Label1.Text = comm.ReadLine();
comm.WriteLine("TEMPB?");
Label1.Text = comm.ReadLine();
comm.WriteLine("TEMP?");
Label1.Text = comm.ReadLine();
comm.WriteLine("TEMPA?");
Label1.Text = comm.ReadLine();
}
catch { TextBox1.Text = "连接异常"; }
}
...全文
相关推荐
C# 强制关闭COM口连接,解决COM口被其他程序占用问题
C# 强制关闭COM口连接,解决COM口被其他程序占用问题
WinCE虚拟串口实战:VSPD Mobile 4.2创建端口对解决COM口不足
串口通信是工业设备调试与数据交换的基础,但物理串口数量有限,常遇到程序写死COM口而硬件端口不足的困境。虚拟串口技术通过驱动在系统内核创建内存数据管道,将一对COM口互联,使应用层无需改动即可透明收发数据。这一原理为WinCE工控设备提供了高效解决方案,尤其适用于老旧系统维护、GPS数据模拟、串口设备仿真等场景。与ch341ser.dll等硬件驱动不同,虚拟串口不依赖物理电平信号,而是纯软件模拟逻辑端口。基于此,VSPD Mobile 4.2作为WinCE平台专用虚拟串口工具,能够快速创建端口对,解决串口资
串口扫描枪 c# 最简程序源码
c# 串口扫描枪 com口 源码 最简单的程序 可以选择com口,点击开始,开始进入扫描模式,关闭则关闭。
C#编写的RS232COM口助手
C#开发的COM口助手,可以帮助学习RS232
COM口读取中文例子
COM口读取中文例子 C#源码


