最近做串口通信的程序 用的是一个串口通信的类JustinIO
using JustinIO;static JustinIO.CommPort ss_port = new JustinIO.CommPort();
ss_port.PortNum = COM1; //端口号
ss_port.BaudRate = 9600; //串口通信波特率
ss_port.ByteSize = 8; //数据位
ss_port.Parity = 0; //奇偶校验
ss_port.StopBits = 1;//停止位
ss_port.ReadTimeout = 1000; //读超时……
相信做过串口通信程序的人对这个类一定不陌生吧
我的问题是,这样子做出来的通信程序每次初始化表面成功了
但是实际上却没有成功
需要第三方软件帮助初始化一下以后再用才可以
如果再重启电脑就又不行了,如果只是重启软件还可用行
第三方工具是一个叫sscom32.exe的串口调试程序请问C#里面应该怎么修改才可以自己初始化???急
using JustinIO;static JustinIO.CommPort ss_port = new JustinIO.CommPort();
ss_port.PortNum = COM1; //端口号
ss_port.BaudRate = 9600; //串口通信波特率
ss_port.ByteSize = 8; //数据位
ss_port.Parity = 0; //奇偶校验
ss_port.StopBits = 1;//停止位
ss_port.ReadTimeout = 1000; //读超时……
相信做过串口通信程序的人对这个类一定不陌生吧
我的问题是,这样子做出来的通信程序每次初始化表面成功了
但是实际上却没有成功
需要第三方软件帮助初始化一下以后再用才可以
如果再重启电脑就又不行了,如果只是重启软件还可用行
第三方工具是一个叫sscom32.exe的串口调试程序请问C#里面应该怎么修改才可以自己初始化???急
timerIO.Enabled = true;
jc.PortNum = m_port;//串口号
jc.BaudRate = m_baudrate;//波特率
jc.ByteSize = 8;//数据位
jc.Parity = 0;
jc.StopBits = 1;//停止位
jc.ReadTimeout = 100;//超时
try
{
if (jc.Opened)
{
jc.Close();
jc.Open();
}
else
{
jc.Open();
}
//MessageBox.Show("ok");
return true;
}
catch (Exception e)
{
MessageBox.Show("Error:" + e.Message);
return false;
}
问题还是需要三方软件帮助初始化一次以后才可以
我程序只调用下面的东西就可以打开串口了
public bool InitCom(string m_port, int m_baudrate)
{
timerIO.Enabled = true;
jc.PortNum = m_port;//串口号
jc.BaudRate = m_baudrate;//波特率
jc.ByteSize = 8;//数据位
jc.Parity = 0;
jc.StopBits = 1;//停止位
jc.ReadTimeout = 100;//超时
try
{
if (jc.Opened)
{
jc.Close();
jc.Open();
}
else
{
jc.Open();
}
//MessageBox.Show("ok");
return true;
}
catch (Exception e)
{
MessageBox.Show("Error:" + e.Message);
return false;
}
}
if (input.Length > 0)
if(input==...)
{
...
}
{
timerIO.Enabled = true;
jc.PortNum = m_port;//串口号
jc.BaudRate = m_baudrate;//波特率
jc.ByteSize = 8;//数据位
jc.Parity = 0;
jc.StopBits = 1;//停止位
jc.ReadTimeout = 100;//超时
try
{
if (jc.Opened)
{
MessageBox.Show("原来已经打开串口");
jc.Close();
jc.Open();
}
else
{
jc.Open();
}
MessageBox.Show("成功打开串口");
return true;
}
catch (Exception e)
{
MessageBox.Show("Error:" + e.Message);
return false;
}
}看看提示什么?
jc.ByteSize = 8;//数据位我用串口跟踪器看;ByteSize为7很奇怪;应该是8才对啊