c++中如何接收串口的数据?

jhdxhj 2009-09-15 04:35:01
c++中如何接收串口的数据?
求个代码看看,emal:hujob@hotmail.com 或者直接贴在下面也行
...全文
258 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jszhuweiwei 2009-09-15
  • 打赏
  • 举报
回复
很多方法,第三类控件如MSCOMM、API函数或者使用封装好的类serialport之类的
曾经的董胖 2009-09-15
  • 打赏
  • 举报
回复
这里有个我自己实现的类,楼主可以直接拿了继承后使用。

http://download.csdn.net/source/1657484
InitialJ 2009-09-15
  • 打赏
  • 举报
回复


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;
}
InitialJ 2009-09-15
  • 打赏
  • 举报
回复
1.打开COM口:
DCB dcb;
HANDLE m_hCom;//COM口句柄
m_hCom = CreateFile(
"COM1",
GENERIC_READ|GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
0,
NULL);


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 );
socoola 2009-09-15
  • 打赏
  • 举报
回复
http://msdn.microsoft.com/en-us/library/ms810467.aspx,微软出品

2,640

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧