Rs232 通讯 COM口 通讯类代码Word文档格式.docx
- 文档编号:7475606
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:12
- 大小:18.37KB
Rs232 通讯 COM口 通讯类代码Word文档格式.docx
《Rs232 通讯 COM口 通讯类代码Word文档格式.docx》由会员分享,可在线阅读,更多相关《Rs232 通讯 COM口 通讯类代码Word文档格式.docx(12页珍藏版)》请在冰点文库上搜索。
hhDtrOn=3
hhDtrDsr=4
软件握手设置
PublicEnumeSwHandShake
shNone=0
shXonXoff=1
缓冲区清除设置
PublicEnumePurgeBuffers
PXAbort=&
H2
PXClear=&
H8
TxAbort=&
H1
txClear=&
H4
串行通信硬件线路设置(EscapeFunction)
PublicEnumeLines
SetXoff=1'
当接收到xoff字符时启动传输操作
SetXon=2'
当接收到XON字符时启动传输操作
SetRts=3'
将RTS线路升成高电位
ClearRts=4'
将RTS线路降成低电位
SetDtr=5'
将DTR线路升成高电位
ClearDtr=6'
将DTR线路降为低电位
ResetDev=7'
重置设备
SetBreak=8'
设置通信状态为中断(送出BREAK信号)
ClearBreak=9'
清除BREAK信号,使传输操作继续
调制解调器专用状态位设置
<
Flags()>
PublicEnumeModemStatusBits
ClearToSendOn=&
H10
DataSetReadOn=&
H20
RingIndicatorOn=&
H40
CarrierDetect=&
H80
事件屏蔽设置
PublicEnumeEventMasks
RxChar=&
H1'
输入缓冲区已收到一个字符
RXFlag=&
H2'
使用setcommstate函数设置的DCB结构中的等待字符已被传入输入缓冲区
TxBufferEmpty=&
H4'
在输出缓冲区中的数据已被完全送出
ClearToSend=&
H8'
CTS(Cleartosend)线路发生变化
DataSetReady=&
H10'
DSR线路发生变化
ReceiveLine=&
H20'
CD线路信号发生变化
Break=&
H40'
收到BREAK信号
StatusError=&
H80'
线路状态错误,包括了CE——FRAME和CE——OVERRUN,CE——RXPARITY三种错误
Ring=&
H100'
检测到响铃信号
DCB设置常数
PublicEnumeBitDef
dcb_Binary=&
dcb_parityCheck=&
dcb_OutxCtsFlow=&
dcb_OutxDsrFlow=&
dcb_DtrControlMask=&
H30
dcb_DtrControlDisable=&
H0
dcb_DtrControlEnable=&
dcb_DtrControlHandshake=&
dcb_DsrSendsivity=&
dcb_TXContinueOnXoff=&
dcb_Outx=&
H100
dcb_InX=&
H200
dcb_ErrorChar=&
H400
dcb_NullStrip=&
H800
dcb_RtsControlMask=&
H3000
dcb_RtsControlToggle=&
dcb_RtsControldisable=&
dcb_RtsControlEnable=&
H1000
dcb_RtscontrolHandShake=&
H2000
dcb_AbortOnError=&
H4000
dcb_Reserveds=&
HFFFF8000
通信端口错误常数
PublicEnumeCommError
CE_DREAK=&
CE_DNS=&
CE_FRAME=&
CE_IOE=&
CE_MODE=&
H8000
CE_OOP=&
CE_PTO=&
CE_OVERRUN=&
CE_RXOVER=&
通信端口线路状态检测常数
PublicEnumeCommErrorLine
fCtsHold=&
等待CTS信号准备传送
fDsrHold=&
等待DRS信号准备传送
fRlsdHold=&
等待RLAS信号准备传送
fXoffHold=&
收到XOFF字符停止传送
fXoffSent=&
已送出XOFF字符,停止传送
fEof=&
EOF字符已送出
fTxim=&
字符等待传送
通信速度的设置枚举
PublicEnumeBaudrates
BR_110=100
BR_300=300
BR_600=600
BR_1200=1200
BR_2400=2400
BR_4800=4800
BR_9600=9600
BR_14400=14400
BR_19200=19200
BR_38400=38400
BR_56000=56000
BR_57600=57600
BR_115200=115200
#EndRegion
结构"
DeviceControlblock结构声明
StructLayout(LayoutKind.Sequential,Pack:
=1)>
PublicStructureDCB
PublicDCBlengthAsInt32
PublicBaudRateAsInt32
PublicBits1AsInt32
PublicwReservedAsInt16
PublicXonLimAsInt16
PublicXoffLimAsInt16
PublicByteSizeAsByte
PublicParityAsByte
PublicStopBitsAsByte
PublicXonCharAsChar
PublicXoffCharAsChar
PublicErrorCharAsChar
PublicEofCharAsChar
PublicEvtCharAsChar
PublicwReserved2AsInt16
EndStructure
通信端口状态结构
PublicStructureCOMSTAT
DimfBitFieldsAsInt32
DimcbInQueAsInt32
DimcbOutQueAsInt32
超时设置结构
PublicStructureCOMMTIMEOUTS
PublicReadIntervalTimeoutAsInt32
PublicReadTotalTimeoutMultiplierAsInt32
PublicReadTotalTimeoutConstantAsInt32
PublicWriteTotalTimeoutMultiplierAsInt32
PublicWriteTotalTimeoutConstantAsInt32
通信端口配置结构
=8)>
PublicStructureCOMMCONFIG
PublicdwSizeAsInt32
PublicwVersionAsInt16
PublicdcbxAsDCB
PublicdwProviderSubTypeAsInt32
PublicdwProviderOffsetAsInt32
PublicdwProviderSizeAsInt32
PublicwcProviderDataAsInt16
异步传输的设置结构
PublicStructureOVERLAPPED
PublicInternalAsInt32
PublicInternalHighAsInt32
PublicOffsetAsInt32
PublicOffsetHighAsInt32
PublichEventAsIntPtr
常数"
PrivateConstPURGE_RXABORTAsInteger=&
PrivateConstPURGE_RXCLEARAsInteger=&
PrivateConstPURGE_TXABORTAsInteger=&
PrivateConstPURGE_TXCLEARAsInteger=&
PrivateConstGENERIC_READAsInteger=&
H80000000'
打开通信端口时的参数
PrivateConstGENERIC_WRITEAsInteger=&
H40000000'
PrivateConstOPEN_EXISTINGAsInteger=3'
PrivateConstINVALID_HANDLEAsInteger=-1'
通信端口关闭时的Handle值
PrivateConstIO_BUFFER_SIZEAsInteger=1024
PrivateConstFILE_FLAG_OVERLAPPEDAsInt32=&
H40000000
PrivateConstERROR_IO_PENDINGAsInt32=997
PrivateConstWAIT_OBJECT_0AsInt32=0
PrivateConstERROR_IO_INCOMPLETEAsInt32=996
PrivateConstWAIT_TIMEOUTAsInt32=&
H102&
PrivateConstINFINITEAsInt32=&
HFFFFFFFF
PrivateConstTIMER_INTERVALAsInt16=10'
定时器所使用的时间隔
局部变量"
PrivatemabtRxBufAsByte()
PrivatemeModeAseMode
PrivatemoThreadTxAsThread
PrivatemoThreadRxAsThread
PrivatemoEventsAsThread
PrivatemiTmpBytes2ReadAsInt32
PrivatemeMaskAseEventMasks
PrivatembDisposedAsBoolean
PrivatembUseXonXoffAsBoolean
PrivatembEnableEventsAsBoolean
PrivatemiBufThresholdAsInt32=1
PrivatemuOvlEAsOVERLAPPED
PrivatemuOvlWAsOVERLAPPED
PrivatemuOvlRAsOVERLAPPED
PrivatemhRSAsIntPtr=INVALID_HANDLE
//串口的handle
PrivatemiPortAsInteger=1
//默认通信端口为COM1
PrivatemfPortOpenAsBoolean'
通信端口打开状态
PrivatemeBaudrateAseBaudrates=eBaudrates.BR_9600'
9600bps
PrivatemiTimeoutAsInt32=70
//
PrivatemiBaudRateAsInt32=9600
PrivatemeParityAseDataParity=eDataParity.Parity_None'
无同位校验
PrivatemstopBitAseDataStopBit=eDataStopBit.StopBit_1'
停止校验位为1
PrivatemeDataBitAseDataBit=eDataBit.Bit_8'
数据长度为8
PrivatemeHwHandshakeAseHwHandShake=eHwHandShake.hhNone'
默认为无硬件握手
PrivatemeSwHandshakeAseSwHandShake=eSwHandShake.shNone'
默认为无软件握手
PrivatemeCommEventAseEventMasks'
通信事件号码
PrivatemeCommErrorAseCommError'
错误号码
PrivatemDCBBitAseBitDef'
控制区块变量
PrivatemReadLenAsInteger'
每次READ命令的读取字节数
PrivatemRThresholdAsInteger=1'
触发ondatareceived事件阈值
PrivatemCDHoldingAsBoolean'
CD的针脚状态
PrivatemDSRHoldingAsBoolean'
DSR的针脚状态
PrivatemCTSHoldingAsBoolean'
CTS的针脚状态
PrivatemRIHoldingAsBoolean'
RI的针脚状态
PrivatemeStopBitAseDataStopBit=0
PrivatemiDataBitAsInt32=8
PrivatemHEAsGCHandle
PrivatemHRAsGCHandle
PrivatemHWAsGCHandle
PrivatemDTRAsBoolean'
DTR状态
PrivatemRTSAsBoolean'
RTS状态
PrivatemfTimerAsBoolean'
记录定时器的状态
PrivatemiBufferSizeAsInteger=512'
默认缓冲区512bytes
PublicmiReceivedAsInteger=0'
已收到数据
属性"
通信端口号码属性设置
PublicPropertyCommPort()AsInteger
Get
ReturnmiPort
EndGet
Set(ByValvalueAsInteger)
miPort=value
EndSet
EndProperty
设置端口开关
设置会调用OpenCom及CloseCom
PublicPropertyPortOpen()AsBoolean
ReturnmfPortOpen
Set(ByValvalueAsBoolean)
IfvalueThen'
打开
IfmfPortOpenThen'
已经打开
ThrowNewException("
通信端口已打开"
)
ExitProperty
EndIf
IfNotOpenCOM()Then
通信端口打开错误(端口被其它程序占用或不存在此端口)!
"
mfPortOpen=True
mfTimer=True
IfNotTimer1.EnabledThen
Timer1.Start()
Else'
关闭通信端口
IfNotCloseCOM()Then'
调用关闭端口
通信端口关闭错误"
mfPortOpen=False
设置通信速度,利用枚举比较方便
PublicPropertyBaudRate()AseBaudrates
ReturnmeBaudrate
Set(ByValvalueAseBaudrates)
meBaudrate=value
************************************************************
PublicPropertyhwhandShaking()AseHwHandShake
ReturnmeHwHandshake
Set(ByValvalueAseHwHandShake)
meHwHandshake=value
PublicPropertyswhandShaking()AseSwHandShake
ReturnmeSwHandshake
Set(ByValvalueAseSwHandShake)
meSwHandshake=value
PublicPropertyDataBit()AseDataBit
ReturnmeDataBit
Set(ByValValueAseDataBit)
meDataBit=Value
PublicPropertyStopBit()AseDataStopBit
ReturnmeStopBit
Set(ByValValueAseDataStopBit)
meStopBit=Value
同位校验设置
PublicPropertyParity()AseDataParity
ReturnmeParity
Set(ByValValueAseDataParity)
meParity=Value
通信事件(只读)
PublicReadOnlyPropertyCommEvent()AseEventMasks
ReturnmeCommEvent
通信错误(只读)
PublicReadOnlyPropertyCommError()AseCommError
ReturnmeCommError
每次读取操作的字节数,使用read命令时可以指定
PublicPropertyReadLen()AsInteger
ReturnmReadLen
mReadLen=value
;
触发ondatareceived事件的阈值,可以设置启动事件的阈值
PublicPropertyRThreshold()AsInteger
ReturnmRThreshold
mRThreshold=value
DSR线路状态,TRUE、FALSE高电
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Rs232 通讯 COM口 通讯类代码 COM 代码