快来帮帮我呀:串口通信问题,在线等
一台终端与交换机相连,数据传输用串口(COM1)。
串口设置如下:
设备名:COM1
比特:1200
数据位:7
校验:0
停止位:1
调用下面的函数是老是出错,返回值是3
int OpenComm(const char* pPort/*串口名, const int nBaudRate/* =CBR_1200 */, const int nParity/* =NOPARITY */, const int nByteSize/* =7 */, const int nStopBits/* =1 */)
{
DCB dcb; // 串口控制块
COMMTIMEOUTS timeout;
timeout.ReadIntervalTimeout = 100;
timeout.ReadTotalTimeoutMultiplier = 1;
timeout.ReadTotalTimeoutConstant = 500;
timeout.WriteTotalTimeoutMultiplier = 1;
timeout.WriteTotalTimeoutConstant = 100;
m_hComm = CreateFile(pPort, // 串口名称或设备路径
GENERIC_READ ¦ GENERIC_WRITE,// 读写方式
0, // 共享方式:独占
NULL, // 默认的安全描述符
OPEN_EXISTING, // 创建方式
0, // 不需设置文件属性
NULL); // 不需参照模板文件
if(m_hComm == INVALID_HANDLE_VALUE)
{
return 1; // 打开串口失败
}
if (!GetCommState(m_hComm, &dcb)) // 取DCB
{
return 2;
}
dcb.BaudRate = nBaudRate;
dcb.ByteSize = nByteSize;
dcb.Parity = nParity;
dcb.StopBits = nStopBits;
if (!SetCommState(m_hComm, &dcb)) // 设置DCB
{
return 3;
}
if (!SetupComm(m_hComm, 1024*1, 1024*1))// 设置缓冲区
{
return 4;
}
if (!SetCommTimeouts(m_hComm, &timeout))// 设置超时
{
return 5;
}
return 0;
}
一切硬件连接正常(用超级终端连接正常)
请各位高手帮忙看看是什么问题? 很急!先谢了!
串口设置如下:
设备名:COM1
比特:1200
数据位:7
校验:0
停止位:1
调用下面的函数是老是出错,返回值是3
int OpenComm(const char* pPort/*串口名, const int nBaudRate/* =CBR_1200 */, const int nParity/* =NOPARITY */, const int nByteSize/* =7 */, const int nStopBits/* =1 */)
{
DCB dcb; // 串口控制块
COMMTIMEOUTS timeout;
timeout.ReadIntervalTimeout = 100;
timeout.ReadTotalTimeoutMultiplier = 1;
timeout.ReadTotalTimeoutConstant = 500;
timeout.WriteTotalTimeoutMultiplier = 1;
timeout.WriteTotalTimeoutConstant = 100;
m_hComm = CreateFile(pPort, // 串口名称或设备路径
GENERIC_READ ¦ GENERIC_WRITE,// 读写方式
0, // 共享方式:独占
NULL, // 默认的安全描述符
OPEN_EXISTING, // 创建方式
0, // 不需设置文件属性
NULL); // 不需参照模板文件
if(m_hComm == INVALID_HANDLE_VALUE)
{
return 1; // 打开串口失败
}
if (!GetCommState(m_hComm, &dcb)) // 取DCB
{
return 2;
}
dcb.BaudRate = nBaudRate;
dcb.ByteSize = nByteSize;
dcb.Parity = nParity;
dcb.StopBits = nStopBits;
if (!SetCommState(m_hComm, &dcb)) // 设置DCB
{
return 3;
}
if (!SetupComm(m_hComm, 1024*1, 1024*1))// 设置缓冲区
{
return 4;
}
if (!SetCommTimeouts(m_hComm, &timeout))// 设置超时
{
return 5;
}
return 0;
}
一切硬件连接正常(用超级终端连接正常)
请各位高手帮忙看看是什么问题? 很急!先谢了!
...全文
相关推荐
C# 串口通信(彻底解决C#串口通信中的数据丢失问题)
以网上某位大虾的源码为版本,沿用了其可用的代码部分。对其余欠妥部分进行了改造。不要资源分,是大家不用为积分而烦恼。出来混都不容易,希望大家相互照应!
stm32与ros进行串口通信
最近老师定做了一个气动手抓,手抓的原理简单,主要是通过气泵充气后,通过24v电压控制,进而以通电和放电的方式来使手抓闭合和张开,此时可以用一个继电器来自动控制手抓电源。 首先分析一下继电器大致原理:如图所示,可以简化理解成通过给线圈通电后,然后产生电磁效应,使衔铁向下移动,从而使回路导通。当断电后,使衔铁向上移动,从而使回路断开 针对于淘宝上购买的继电器模块 可以通过上面的黑色连接器(具体叫什...
Android 串口通信权限问题
Android 串口通信权限问题Android 串口通信权限问题Android 串口通信权限问题Android 串口通信权限问题
串口通信关于串口找不到的问题
串口通信关于串口找不到的问题(我开始也被困扰了好久,终于解决,与大家分享一下)
STC单片机串口通信程序
STC单片机串口通信程序,很经典,快来下载哦


网络及通讯开发
