为何有时打不开串口?
运行环境为Win98,我在程序启动组中加入我写的程序,让Windows启动是直接运行我的程序,程序初始化时需要打开串口,可是有时却打不开串口,这是为什么?请高手指教!打开串口程序如下:
bool OpenPort(int Port,int Baud)
{
AnsiString ComName;
HANDLE hComm;
COMMTIMEOUTS commtimeouts={MAXDWORD,0,0,0,0};
DCB dcb;
ComName = "COM" + IntToStr(Port);
hComm = CreateFile(ComName.c_str(), GENERIC_READ|GENERIC_WRITE, 0, NULL,
OPEN_EXISTING, NULL, NULL);
if ( hComm == INVALID_HANDLE_VALUE) return false;
SetCommTimeouts(hComm,&commtimeouts);
dcb.DCBlength = sizeof(DCB);
GetCommState(hComm,&dcb);
dcb.BaudRate = FBaudRate;
dcb.ByteSize = 8;
dcb.Parity = NOPARITY;
dcb.StopBits = ONESTOPBIT;
SetCommState(hComm,&dcb);
PurgeComm(hComm, PURGE_RXCLEAR | PURGE_TXCLEAR);
return true;
bool OpenPort(int Port,int Baud)
{
AnsiString ComName;
HANDLE hComm;
COMMTIMEOUTS commtimeouts={MAXDWORD,0,0,0,0};
DCB dcb;
ComName = "COM" + IntToStr(Port);
hComm = CreateFile(ComName.c_str(), GENERIC_READ|GENERIC_WRITE, 0, NULL,
OPEN_EXISTING, NULL, NULL);
if ( hComm == INVALID_HANDLE_VALUE) return false;
SetCommTimeouts(hComm,&commtimeouts);
dcb.DCBlength = sizeof(DCB);
GetCommState(hComm,&dcb);
dcb.BaudRate = FBaudRate;
dcb.ByteSize = 8;
dcb.Parity = NOPARITY;
dcb.StopBits = ONESTOPBIT;
SetCommState(hComm,&dcb);
PurgeComm(hComm, PURGE_RXCLEAR | PURGE_TXCLEAR);
return true;
...全文
相关推荐
串口通信关于串口找不到的问题
今天,我们将讨论串口通信中关于串口找不到的问题,并提供两种解决方案。串口通信的原理是通过串口将数据传输到外部设备中,但是如果串口找不到,数据就不能传输,导致通信失败。那么,什么是串口找不到的问题?
如何区分直连串口线和交叉串口线?
### 如何区分直连串口线和交叉串口线?#### 一、串口线的基础概念串口线主要用于连接两个设备,使它们之间能够进行数据传输。
串口转发工具配合虚拟串口即可实现一串口数据转发到另外几个串口
在传统硬件中,串口主要指COM1、COM2等,而在现代计算机中,可以通过USB转串口适配器或者虚拟串口软件来模拟串口。
XCOM串口助手XCOM串口助手XCOM串口助手
**波特率测试**:通过发送特定的测试数据,评估串口的传输速率,帮助确定最佳波特率设置。6. **串口诊断**:检测串口状态,检查串口是否正常工作,排除硬件故障。7.
c++ 串口类 读 写 取得串口列表
本文将详细讲解如何使用C++进行串口操作,包括打开、关闭串口、读取和写入数据以及获取可用串口列表。


网络及通讯开发
