文档详情

VB(12)第五章串口通信方法与实现2.pptx

发布:2021-07-22约4.61千字共25页下载文档
文本预览下载声明
串口通信控件主要属性小结 ◆CommPort 属性 MSComm1.CommPort = 2 ◆Settings 属性 MSComm1.Settings = “1200,e,8,1“ ◆PortOpen 属性 MSComm1.PortOpen = True ◆OutPut 属性 MSComm1.OutPut = Text1.text ◆Input 属性 Text1= MSComm1.Input ◆InBufferCount 属性 ◆RThreshold 属性串口通信的基本步骤? ◆在工程中添加 MSComm 控件; ◆设置 CommPort 属性选择通信串口; ◆设置 Settings 属性选择通信参数; ◆设置 PortOpen = True 打开通信串口; ◆使用 Output 属性发送数据; ◆使用 Input 属性接收数据; ◆设置PortOpen属性= False 关闭串口。 1.3.2 自动接收数据 自动接收数据的方法通常有两种: 1. 查询方式 MSComm1 控件的 InBnfferCount 属性用来返回接收缓冲区中已收到但还未取走的字符个数,可以通过查询 InBnfferCount 属性值是否大于0来判断是否有数据接收进来。查询的方法可以借助定时器(Timer1)控件。 (1)窗体设计: 在简单串口通信窗体设计中,将“接收”按钮及相应的代码去掉,并在窗体中添加一个定时器控件。 查询方式下串口通信窗体设计 (2) 属性设置: 定时器控件的Enabled 属性设置为Ture,Interval 属性取值为100。 (3) 编写代码 用鼠标双击定时器控件在Timer1_Timer事件中加入以下代码: Private Sub Timer1_Timer() If MSComm1.InBufferCount 0 Then timel = Timer While Timer - timel 0.1 DoEvents Wend Text2.Text = MSComm1.Input End If End Sub 运行程序,在发送文本框中输入字符或汉字,点击“发送”按钮,在“接收”文本框中就会自动显示接收到的数据。 2.事件驱动方式 事件驱动方式使用串口控件的 OnComm事件。由于事件驱动方式会产生类似于硬件中断的效果,所以也称为软中断接收方式。 OnComm 事件? MSComm1 控件只有一个 OnComm 事件,在这个事件中包含了十七个通信过程中的事件处理过程并用事件用属性CommEvent 的十七个值来区分不同的触发事件。 无论何时当CommEvent 属性值变化时,就产生 OnComm 事件。 (1) CommEvent 属性取值及含义 ◆通信错误常数(共计10个) 符 号 常 数值含 义comEventBreak1001接收到中断信号comEventCTSTO1002CTS 超时comEventDSRTO1003DSR 超时comEventFrame1004帧错误comEventOverrun1006数据丢失(端口超速)comEventCDTO1007CD 超时comEventRxOver1008接收缓冲区溢出comEventRxParity1009极性错误comEventTxFull1010发送缓冲区满comEventDCB1011检索端口设备控制块(DCB)时的意外错误 ◆管脚状态及接收/发送缓冲区状态等常数(共计7个)。 符 号 常 数值含 义comEvSend1发送缓冲区有 Sthreshold属性设置的字符数comEvReceive2接收缓冲区有RThreshold属性设置的字符数comEvCTS3CTS 线状态发生变化comEvDSR4DSR 线状态发生变化comEvCD5CD 线状态发生变化comEvRing6RI(振铃)线状态变化comEvEOF7输入数据流中发现文件结束标志(EOF) (2) OnComm 事件示例框架代码 Private Sub MSComm1_OnComm( ) Select Case MSComm1.CommEvent Case comEventBreak‘十个错误 Case comEventCDTO Case comEventCTSTO Case comEventDSRTO Case comEventFrame Case comEventOverrun Case comEventRxOver Case comEventRxParity Case comEventTxFull Case comEventDCB Case comEvCD ’ 七个事件 Case comEvCTS Cas
显示全部
相似文档