码迷,mamicode.com
首页 > 其他好文 > 详细

VC com 通信实例

时间:2015-03-30 13:10:31      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:

HANDLE hCom;//全局變量串口句柄
COMMTIMEOUTS TimeOuts;
DCB dcb;
 按鈕代碼()
{
hCom=CreateFile(L“COM1”,// 串口名稱
  GENERIC_READ|GENERIC_WRITE,//允许读和写
  0,//独占方式
  NULL,
  OPEN_EXISTING,// 打开而不是创建
  0,//同步方式
  NULL);
/////////////////////////////////////////////////////////////////////////////////////////////////
if(hCom==(HANDLE)-1)
{
MessageBox(L"打开 COM 失败!");
}
SetupComm(hCom,1024,1024);//输入缓冲区和输出缓冲区的大小都是1024
//设定读超时
TimeOuts.ReadIntervalTimeout=1000;
TimeOuts.ReadTotalTimeoutMultiplier=500;
TimeOuts.ReadTotalTimeoutConstant=5000;	
//设定写超时
TimeOuts.WriteTotalTimeoutMultiplier=500;
TimeOuts.WriteTotalTimeoutConstant=2000;
SetCommTimeouts(hCom,&TimeOuts);
GetCommState(hCom,&dcb);
dcb.BaudRate=9600;//波特壘率为 9600
dcb.ByteSize=8;//每个字节有3 8 位
dcb.Parity=NOPARITY;//无奇偶校验位
dcb.StopBits=TWOSTOPBITS;//两个停止位
SetCommState(hCom,&dcb);
PurgeComm(hCom,PURGE_TXCLEAR|PURGE_RXCLEAR);
//Com 同步通訊寫入()
//Com 同步通訊讀出()
//關閉com();
}

Com 同步通訊寫入()
{
char lpOutBuffer[100]={"%01#WCSY00080**\r"};//需要nSend 的數據
DWORD dwBytesWrite=100;//寫入數據的緩衝區大小
COMSTAT ComStat;
DWORD dwErrorFlags;
BOOL bWriteStat;
ClearCommError(hCom,&dwErrorFlags,&ComStat);

bWriteStat=WriteFile(hCom,lpOutBuffer,dwBytesWrite,& dwBytesWrite,NULL);//寫入數據
if(!bWriteStat)
{
MessageBox(L"写串口失败!");
}

}
Com 同步通訊讀出()
{
char str[100]={""};//初始化
DWORD wCount;//读取的字节数
BOOL bReadStat;
bReadStat=ReadFile(hCom,str,100,&wCount,NULL);//讀出數據
if(!bReadStat)
{
MessageBox(L"读串口失败!");
return ;
}
CloseHandle(hCom);//關閉串口

}
關閉com()
{
CloseHandle(hCom);//關閉串口
}

  

VC com 通信实例

标签:

原文地址:http://www.cnblogs.com/sidongboke/p/4377447.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!