本章我们将以工业掌控和嵌入式系统中运用十分普遍的串口通信为事例描写多线程的典型应用于。而网络通信也是多线程应用于最普遍的领域之一,所以本章的最后一节也将对多线程网络通信展开结尾的叙述。
1.串口通信在工业控制系统中,工控机(一般都基于PCWindows平台)常常必须与单片机通过串口展开通信。因此,操作者和用于PC的串口沦为大多数单片机、嵌入式系统领域工程师必需不具备的能力。串口的用于必须通过三个步骤来已完成的:(1)关上通信端口;(2)初始化串口,设置波特率、数据位、暂停位、奇偶校验等参数。
为了给读者一个直观的印象,右图从Windows的控制面板-系统-设备管理器-通信端口(COM1)关上COM的设置窗口:(3)读取串口。在WIN32平台下,对通信端口展开操作者跟基本的文件操作者一样。
创立/关上COM资源下列函数如果调用顺利,则回到一个标识通信端口的句柄,否则回到-1:HADLECreateFile(PCTSTRlpFileName,//通信端口名,如COM1WORDdwDesiredAccess,//对资源的采访类型WORDdwShareMode,//登录分享模式,COM无法分享,该参数为0PSECURITY_ATTRIBUTESlpSecurityAttributes,//安全性描述符指针,可为NULLWORDdwCreationDisposition,//创立方式WORDdwFlagsAndAttributes,//文件属性,可为NULLHANDLEhTemplateFile//模板文件句柄,置为NULL);取得/设置COM属性下列函数可以取得COM口的设备掌控块,从而取得涉及参数:BOOLWINAPIGetCommState(HANDLEhFile,//标识通信端口的句柄LPDCBlpDCB//指向一个设备掌控块(DCB结构)的指针);如果要调整通信端口的参数,则必须重新配置设备掌控块,再行用WIN32APISetCommState()函数展开设置:BOOLSetCommState(HANDLEhFile,//标识通信端口的句柄LPDCBlpDCB//指向一个设备掌控块(DCB结构)的指针);DCB结构包括了串口的各项参数设置,如下:typedefstruct_DCB{//dcbDWORDDCBlength;//sizeof(DCB)DWORDBaudRate;//currentbaudrateDWORDfBinary:1;//binarymode,noEOFcheckDWORDfParity:1;//enableparitycheckingDWORDfOutxCtsFlow:1;//CTSoutputflowcontrolDWORDfOutxDsrFlow:1;//DSRoutputflowcontrolDWORDfDtrControl:2;//DTRflowcontroltypeDWORDfDsrSensitivity:1;//DSRsensitivityDWORDfTXContinueOnXoff:1;//XOFFcontinuesTxDWORDfOutX:1;//XON/XOFFoutflowcontrolDWORDfInX:1;//XON/XOFFinflowcontrolDWORDfErrorChar:1;//enableerrorreplacementDWORDfNull:1;//enablenullstrippingDWORDfRtsControl:2;//RTSflowcontrolDWORDfAbortOnError:1;//abortreads/writesonerrorDWORDfDummy2:17;//reservedWORDwReserved;//notcurrentlyusedWORDXonLim;//transmitXONthresholdWORDXoffLim;//transmitXOFFthresholdBYTEByteSize;//numberofbits/byte,4-8BYTEParity;//0-4=no,odd,even,mark,spaceBYTEStopBits;//0,1,2=1,1.。
本文来源:免费pg电子游戏麻将-www.6181111.com
咨询电话: