/// <summary>
/// 设置波特率
/// </summary>
/// <param name="bdr"></param>
public void ResetBaudRate(int bdr)
{
bool ret = true;
Win32Com.DCB dcb = new Win32Com.DCB();
ret = Win32Com.GetCommState(hPort,ref dcb);
dcb.BaudRate = bdr;
ret = Win32Com.SetCommState(hPort,ref dcb);
PurgeIn();
PurgeOut();
}
/// <summary>
/// 清除读取缓冲区内容
/// </summary>
public void PurgeIn()
{
bool ret = false;
ret = Win32Com.PurgeComm(hPort,Win32Com.PURGE_RXABORT | Win32Com.PURGE_RXCLEAR);
//ret = CancelRead();
//ret = PurgeRead();
}
/// <summary>
/// 清除写缓冲区内容
/// </summary>
public void PurgeOut()
{
bool ret = false;
ret = Win32Com.PurgeComm(hPort,Win32Com.PURGE_TXABORT | Win32Com.PURGE_TXCLEAR);
//ret = CancelWrite();
//ret = PurgeWrite();
}
调用时要对通信线程进行延时操作,调用如下 假设为comm
int BaudRate = 57600;
comm.Sleep(100);
comm.ResetBaudRate(BaudRate);
comm.Sleep(100);
/// 设置波特率
/// </summary>
/// <param name="bdr"></param>
public void ResetBaudRate(int bdr)
{
bool ret = true;
Win32Com.DCB dcb = new Win32Com.DCB();
ret = Win32Com.GetCommState(hPort,ref dcb);
dcb.BaudRate = bdr;
ret = Win32Com.SetCommState(hPort,ref dcb);
PurgeIn();
PurgeOut();
}
/// <summary>
/// 清除读取缓冲区内容
/// </summary>
public void PurgeIn()
{
bool ret = false;
ret = Win32Com.PurgeComm(hPort,Win32Com.PURGE_RXABORT | Win32Com.PURGE_RXCLEAR);
//ret = CancelRead();
//ret = PurgeRead();
}
/// <summary>
/// 清除写缓冲区内容
/// </summary>
public void PurgeOut()
{
bool ret = false;
ret = Win32Com.PurgeComm(hPort,Win32Com.PURGE_TXABORT | Win32Com.PURGE_TXCLEAR);
//ret = CancelWrite();
//ret = PurgeWrite();
}
调用时要对通信线程进行延时操作,调用如下 假设为comm
int BaudRate = 57600;
comm.Sleep(100);
comm.ResetBaudRate(BaudRate);
comm.Sleep(100);