VC串口通讯,API函数.docVIP

  • 5
  • 0
  • 约6.74千字
  • 约 5页
  • 2017-06-07 发布于重庆
  • 举报
VC串口通讯,API函数

VC串口通讯,API函数 介绍 介绍工业控制领域利用串口和外围设备进行通讯。 正文 前言: ???? 总所周之,利用串口进行数据通讯在在通讯通讯领域重占有着重要的地位。利用RS232-RS485进行数据信号的采集和传递是VC编程的又一大热点。串口通讯在通讯软件重有着十分广泛的应用。如电话、传真、视频和各种控制等。在各种开发工具中间,VC由于功能强大和灵活,同时也得到了Microsoft的最大支持,所以在一般进行涉及硬件操作的通讯编程中,大都推荐使用VC作为开发工具。然而工业控制串口通讯这个又不同于一般的串口通讯程序,因为控制外围设备传送的大都是十六进制数据(BYTE类型),所以,为了提高程序的运行稳定性,我们在编写程序进行通讯时可以不考虑传送BYTE类型数据的工作。 ???? 串口通讯目前流行的方法大概有两种:一是利用Microsoft提供的CMSCOMM控件进行通讯,不过现在很多程序员都觉应该放弃这种方式。二是利用WINAPI函数进行编程,这种编程的难度最高,要求你要掌握很多的API函数。三是利用现在网络上面提供的一些串口通讯控件进行编写,比如CSerial类等。 程序实现: ???? 我在经过许多的项目的开发和实践中发现,采用WIN API函数进行串口的开发能够给程序员很大的空间,并且程序运也很稳定。所以我将与串口接触的函数进行封装,然后在各个工程中进行调用,效果还是比较好的,现将各个函数和调用方法列举出来,希望对各位有所帮助。 ???? 一、设置串口相关工作 #define???????? MAXBLOCK 2048 #define???????? XON 0x11 #define???????? XOFF 0x13 BOOL SetCom(HANDLE m_hCom, const char *m_sPort, int BaudRate, int Databit, CString parity, CString stopbit) { ???? COMMTIMEOUTS TimeOuts;???????????????????????????????? ///串口输出时间 超时设置 ???? DCB dcb;?????????????????????????????????????????????? ///与端口匹配的设备???? ???? m_hCom=CreateFile(m_sPort, GENERIC_READ | GENERIC_WRITE, 0, NULL, ???????? OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, ???????? NULL); // 以重叠方式打开串口 ???? if(m_hCom==INVALID_HANDLE_VALUE) ???? {?? ???????? AfxMessageBox(设置串口部分,串口打开失败);?? /////重叠方式 异步通信(INVALID_HANDLE_VALUE)函数失败。 ???????? return FALSE; ???? }???? ???? SetupComm(m_hCom,MAXBLOCK,MAXBLOCK);?????????????? //设置缓冲区 ???? memset(TimeOuts,0,sizeof(TimeOuts));???? ???? TimeOuts.ReadIntervalTimeout=MAXDWORD;?????????? // 把间隔超时设为最大,把总超时设为0将导致ReadFile立即返回并完成操作 ???? TimeOuts.ReadTotalTimeoutMultiplier=0;?????????? //读时间系数 ???? TimeOuts.ReadTotalTimeoutConstant=0;???????????? //读时间常量?? ???? TimeOuts.WriteTotalTimeoutMultiplier=50;?????? //总超时=时间系数*要求读/写的字符数+时间常量 ???? TimeOuts.WriteTotalTimeoutConstant=2000;?????? //设置写超时以指定WriteComm成员函数中的?????????????????????????????????????????????? ???? SetCommTimeouts(m_hCom, TimeOuts);?????????? //GetOverlappedResult函数的等待时间*/ ???? if(!GetCommState(m_hCom, dcb))?????????????? ////串口打开方式、端口

文档评论(0)

1亿VIP精品文档

相关文档