我的频道 点击进入频道

新闻 国际 国内 社会 军事 娱乐 明星 影视 体育 足球 篮球 名人 历史 网红 探索 科学 奇闻 图片 专题

Win32串口编程:万豪汇

2021-09-13 11:33:02 奇闻 2675
本文摘要:Win32串口程序编写  Win32下串口通信与16位串口通信有非常大的差别。

Win32串口程序编写  Win32下串口通信与16位串口通信有非常大的差别。在Win32下,能够用于二种程序编写方法搭建串口通信,其一是启用的Windows的API函数,其二是用于ActiveX控制。用于API启用,能够准确地操控串口通信的体制,熟识各种各样配备和支配权协调能力应用各有不同的流控进行串口通信。

万豪汇

下边解读串口作业者的基础知识。  合上串口:用于CreateFile()函数,能够合上串口。有二种方式能够合上串口,一种是即时方法(NonOverlapped),此外一种多线程方法(Overlapped)。

用于Overlapped合上时,必需的方式是:  HANDLEhComm;  hComm=CreateFile(gszPort,GENERIC_READ|GENERIC_WRITE,0,0,OPEN_EXISTING,FILE_FLAG_OVERLAPPED,0);  if(hComm==INVALID_HANDLE_VALUE)  //erroropeningport;abort  配备串口:  1.DCB配备  DCB(DeviceControlBlock)构造界定了串口通信机器设备的操控设定。很多最重要设定全是在DCB构造中设定的,有三种方法能够复位DCB。  (1)根据GetCommState()函数得DCB的初值,其用于方法为:  DCBdcb={0};  if(!GetCommState(hComm,&dcb))  //ErrorgettingcurrentDCBsettings  else  //DCBisreadyforuse.  (2)用BuildCommDCB()函数复位DCB构造,该函数铺满DCB的串口波特率、奇偶校验种类、数据位、中止位。

针对流控组员函数设定了缺省值。其用法是:  DCBdcb;  FillMemory(&dcb,sizeof(dcb),0);  dcb.DCBlength=sizeof(dcb);  if(!BuildCommDCB(9600,n,8,1,&dcb)){  //CouldntbuildtheDCB.Usuallyaproblem  //withthecommunicationsspecificationstring.  returnFALSE;  }  else  //DCBisreadyforuse.  (3)用SetCommState()函数手动式设定DCB初始值。用法以下:  DCBdcb;  FillMemory(&dcb,sizeof(dcb),0);  if(!GetCommState(hComm,&dcb))//getcurrentDCB  //ErrorinGetCommState  returnFALSE;  //UpdateDCBrate.  dcb.BaudRate=CBR_9600;  //Setnewstate.  if(!SetCommState(hComm,&dcb))  //ErrorinSetCommState.  Possiblyaproblemwiththecommunications  //porthandleoraproblemwiththeDCBstructureitself.  手动式设定DCB值时,DCB的构造的各组员的含意,能够参照MSDN帮助。


本文关键词:万豪汇,万豪汇官网

本文来源:万豪汇-www.hairhao.com

展开余下全文
(2675)
猜你喜欢
相关新闻
热门推荐