保存桌面快捷方式 - - 设为首页 - 手机版
凹丫丫旗下网站:四字成语大全 - 故事大全 - 范文大全
您现在的位置: 范文大全 >> 理工论文 >> 电子通信论文 >> 正文

金刚石合成控制系统中多串口通信技术的设计与实现


>  
  virtual~CSerialPort();??//析构函数
  
  //InitPort()函数实现初始化串口
  
  BOOLInitPort(
  
  char*str=“com1”,
  
  UINTBaudRate=9600,
  
  UINTParity=0,
  
  UINTByteSize=8,
  
  UINTStopBits=1,
  
  UINTReadMultiplier=0,
  
  UINTReadConstant=0,
  
  UINTWriteMultiplier=10,
  
  UINTWriteConstant=1000);
  
  DCBGetDCB();?//获得DCB参数
  
  //SetDCB()函数实现设置DCB参数
  
  BOOLSetDCB(
  
  UINTBaudRate=9600,
  
  UINTParity=0,
  
  UNITByteSize=8,
  
  UINTStopBits=1);
  
  //GetTimeOuts()函数获得超时参数
  
  COMMTIMEOUTSGetTimeOuts();
  
  //SetTimeOuts()函数设置超时参数
  
  BOOLSetTimeOuts(
  
  UINTReadMultiplier=0,
  
  UINTReadConstant=0,
  
  UINTWriteMultiplier=10,
  
  UINTWriteConstant=1000);
  
  //WritePort()函数实现写串口操作
  
  voidWritePort(HANDLEport,CString);
  
  CStringReadPort(HANDLEport);//读串口操作
  
  BOOLClosePort();?//关闭串口
  
  };
  
  下面对该类的重要函数作以说明:
  
  (1)在构造函数CSerialPort()中已对该类的数据成员进行了初始化操作。
  
  (2)初始化串口函数InitPort()函数用于完成串口的初始化工作,包括打开串口、设置DCB参数、设置通信的超时时间等。
  
  打开串口使用CreateFile()函数,其中InitPort()函数中的第一个参数为要打开的串口,通常将该参数赋给CreateFile()函数中的第一个参数;设置DCB参数应调用该类中的SetDCB()函数,并将InitPort()函数中的第2至第5参数赋给SetDCB()函数;设置通信的超时时间应调用该类中的SetTimeOuts()函数,并将InitPort()函数中的第6至第9参数赋给SetTimeOuts()函数。另外,该串口是系统资源,应该根据不同要求对其安全属性进行设置。
  
  (3)SetDCB()函数用于设置DCB参数,包括传输的波特率、是否进行奇偶校验、每字节长度以及停止位等。
  
  (4)SetTimeOuts()函数用于设定访问的超时值,根据设置的值可以计算出总的超时间隔。前面两个参数用来设置读操作总的超时值,后面两个参数用来设置写操作总的超时值。
  
  (5)WritePort()函数用来完成向串口写数据。由于该系统需要对多个串口进行通信,所以首先应把串口号作为参数传递给该函数;接着该函数把按参数传递过来的、要发送的数据进行编码(也就是加入校验,这样能减少误码率),然后再调用WindowsAPI函数WriteFile()并把数据发送到串口。
  
  (6)ReadPort()函数用来完成从串口读数据,由于有多个串口,所以应把串口作为参数传递进来,然后调用API函数ReadFile(),并把下位机发送到串口,数据读出来放到缓存里面,接着对数据进行处理以将其变换成字符
  
  
  
  串(CString)类型并返回。
  
  (7)GetDCB()函数主要用于获得串口的当前配置,可通过调用API函数GetCommState()来实现,然后再进行相应的处理。
  
  (8)G

《金刚石合成控制系统中多串口通信技术的设计与实现(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/174470.html

★温馨提示:你可以返回到 电子通信论文 也可以利用本站页顶的站内搜索功能查找你想要的文章。