vc COM口的打开,关闭,发送及接收
来源:互联网 发布:球球大作战抽奖软件 编辑:程序博客网 时间:2024/05/29 15:22
1.打开COM口:
DCB dcb;
HANDLE m_hCom;//COM口句柄
m_hCom = CreateFile(
"COM1",
GENERIC_READ|GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
0,
NULL);
2.设置COM口
if (m_hCom != INVALID_HANDLE_VALUE) // 打开串行口成功
{
// 配置通讯参数
GetCommState(m_hCom, &dcb);
dcb.BaudRate = CBR_9600;//波特率
dcb.Parity = EVENPARITY;
//EVENPARITY 偶校验 ,NOPARITY 无校验
//MARKPARITY 标记校验 ODDPARITY 奇校验
dcb.ByteSize = 8;//数据位
dcb.StopBits = ONESTOPBIT;// ONESTOPBIT 1位停止位
//TWOSTOPBITS 2位停止位
//ONE5STOPBITS 1.5位停止位
COMMTIMEOUTS m_CommTimeouts;
SetCommState(m_hCom, &dcb);
// Config timeouts设置超时
m_CommTimeouts.ReadIntervalTimeout = 0;
m_CommTimeouts.ReadTotalTimeoutConstant = 1000;
m_CommTimeouts.ReadTotalTimeoutMultiplier = 0;
m_CommTimeouts.WriteTotalTimeoutConstant = 200;
m_CommTimeouts.WriteTotalTimeoutMultiplier = 0;
SetCommTimeouts(m_hCom, &m_CommTimeouts);
// Clear buffer清除缓冲区
PureComm(m_hCom, PURGE_TXCLEAR);
PurgeComm(m_hCom, PURGE_RXCLEAR);
// 打开串行口成功
return TRUE;
}
3.写串口
char lpOutBuffer[100];
DWORD dwBytesWrite=100;
COMSTAT ComStat;
DWORD dwErrorFlags;
BOOL bWriteStat;
bWriteStat=WriteFile(hCom,lpOutBuffer,dwBytesWrite,& dwBytesWrite,NULL);
if(!bWriteStat)
{
AfxMessageBox("写串口失败!");
}
4.读串口
char str[100];
DWORD wCount;//读取的字节数
BOOL bReadStat;
bReadStat=ReadFile(hCom,str,100,&wCount,NULL);
if(!bReadStat)
{
AfxMessageBox("读串口失败!");
return FALSE;
}
return TRUE;
5.关闭
BOOL CloseHandle( HANDLE hObject; //handle to object to close );
DCB dcb;
HANDLE m_hCom;//COM口句柄
m_hCom = CreateFile(
"COM1",
GENERIC_READ|GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
0,
NULL);
2.设置COM口
if (m_hCom != INVALID_HANDLE_VALUE) // 打开串行口成功
{
// 配置通讯参数
GetCommState(m_hCom, &dcb);
dcb.BaudRate = CBR_9600;//波特率
dcb.Parity = EVENPARITY;
//EVENPARITY 偶校验 ,NOPARITY 无校验
//MARKPARITY 标记校验 ODDPARITY 奇校验
dcb.ByteSize = 8;//数据位
dcb.StopBits = ONESTOPBIT;// ONESTOPBIT 1位停止位
//TWOSTOPBITS 2位停止位
//ONE5STOPBITS 1.5位停止位
COMMTIMEOUTS m_CommTimeouts;
SetCommState(m_hCom, &dcb);
// Config timeouts设置超时
m_CommTimeouts.ReadIntervalTimeout = 0;
m_CommTimeouts.ReadTotalTimeoutConstant = 1000;
m_CommTimeouts.ReadTotalTimeoutMultiplier = 0;
m_CommTimeouts.WriteTotalTimeoutConstant = 200;
m_CommTimeouts.WriteTotalTimeoutMultiplier = 0;
SetCommTimeouts(m_hCom, &m_CommTimeouts);
// Clear buffer清除缓冲区
PureComm(m_hCom, PURGE_TXCLEAR);
PurgeComm(m_hCom, PURGE_RXCLEAR);
// 打开串行口成功
return TRUE;
}
3.写串口
char lpOutBuffer[100];
DWORD dwBytesWrite=100;
COMSTAT ComStat;
DWORD dwErrorFlags;
BOOL bWriteStat;
bWriteStat=WriteFile(hCom,lpOutBuffer,dwBytesWrite,& dwBytesWrite,NULL);
if(!bWriteStat)
{
AfxMessageBox("写串口失败!");
}
4.读串口
char str[100];
DWORD wCount;//读取的字节数
BOOL bReadStat;
bReadStat=ReadFile(hCom,str,100,&wCount,NULL);
if(!bReadStat)
{
AfxMessageBox("读串口失败!");
return FALSE;
}
return TRUE;
5.关闭
BOOL CloseHandle( HANDLE hObject; //handle to object to close );
- vc COM口的打开,关闭,发送及接收
- glib库 socket通信相关的几个函数和数据结构 (二) 打开连接 发送 接收和关闭连接
- 端口的打开关闭及Dr.com端口被占用解决
- vc自定义消息的发送与接收的方法实现
- vc自定义消息的发送与接收的方法实现
- vc自定义消息的发送与接收的方法实现
- vc自定义消息的发送与接收的方法实现
- VC自定义消息的发送与接收的方法实现
- vc自定义消息的发送与接收的方法实现
- vc自定义消息的发送与接收的方法实现
- vc自定义消息的发送与接收的方法实现
- vc自定义消息的发送与接收的方法实现
- vc自定义消息的发送与接收的方法实现
- vc自定义消息的发送与接收的方法实现
- vc自定义消息的发送与接收的方法实现
- vc自定义消息的发送与接收的方法实现
- vc自定义消息的发送与接收的方法实现
- vc自定义消息的发送与接收的方法实现
- vc 线程的创建,暂停和结束
- vc C++数据类型好和转意字符
- vc 添加字体
- 枚举集合
- vc给List加图标
- vc COM口的打开,关闭,发送及接收
- vc List Ctrl控件
- vc CListCtrl 使用技巧1
- vc CListCtrl 使用技巧2
- vc 添加提示
- vc 在LISTCTRL上添加右击菜单
- vc 将LISTCTRL里的内容保存成EXCEL
- vc 修改EDIT的字体及动态修改按钮的名称
- Free Open Source 3D content suite: Blender