
VB程序如何向外部设备发送信号或数据,又如何从外设读入信号或数据。
展开全部
利用VB开发通信程序主要的方法有两种:一是利用VB本身提供的控件(CONTRALS);另一种方法是利用Windows API应用程序接口。Windows API 主要提供了三个动态连接库(KERNEL.EXE、USER.EXE、GDI.EXE)供开发人员调用,其中KERNEL.EXE 主要包括一些底层操作函数,完成一些资源管理、任务、内存等操作;USER.EXE包含了一些与Windows管理有关的函数,如通信、菜单、消息、光标、插入符、计时器以及绝大多数非显示函数;GDI.EXE图形设备接口库,主要内容为与设备输出有关的函数。和串口通信有关系的函数BuilidCommDCB、ClearCommBreak、SetCommBreak、FlushComm、GetCommError、GetCommState、WriteComm、ReadComm、SetCommState、CloseComm等均在 \Windows\system 子目录下的USER.EXE动态连接库中,在VB调用之前应该先在全局变量定义处声明API通信函数、定义常量。
在VB的控件工具箱中,提供了一个使用非常方便的串行通信控件MSComm,它提供了一个事件OnComm,该事件可以截取串口的任何消息,转入事件处理程序。OnComm事件是唯一的,OnComm可以捕获通信时发生的串口事件和错误信息,当有串口事件或错误发生时,VB会立刻触发一个OnComm事件,程序就会自动转入OnComm事件处理程序中。CommEvent属性是OnComm事件的指示器,该属性在设计时不能使用,在程序运行时为只读,CommEvent 属性存有最近的事件或错误的数值代码,可以在程序中随时读取CommEvent 属性值来了解通信的状况,OnComm事件是和CommEvent属性密切相关、一起使用,当任何一个OnComm 事件或错误发生时,都会使得CommEvent属性值改变,在OnComm事件处理过程中,可以通过判断CommEvent属性值,对于不同的属性值转入不同的事件处理过程,一般采用的办法是SELECT CASE.......END SELECT。
在VB的控件工具箱中,提供了一个使用非常方便的串行通信控件MSComm,它提供了一个事件OnComm,该事件可以截取串口的任何消息,转入事件处理程序。OnComm事件是唯一的,OnComm可以捕获通信时发生的串口事件和错误信息,当有串口事件或错误发生时,VB会立刻触发一个OnComm事件,程序就会自动转入OnComm事件处理程序中。CommEvent属性是OnComm事件的指示器,该属性在设计时不能使用,在程序运行时为只读,CommEvent 属性存有最近的事件或错误的数值代码,可以在程序中随时读取CommEvent 属性值来了解通信的状况,OnComm事件是和CommEvent属性密切相关、一起使用,当任何一个OnComm 事件或错误发生时,都会使得CommEvent属性值改变,在OnComm事件处理过程中,可以通过判断CommEvent属性值,对于不同的属性值转入不同的事件处理过程,一般采用的办法是SELECT CASE.......END SELECT。

2023-12-06 广告
信令SDK是网易云信提供的稳定可靠的信令通道,可用于搭建音视频场景下的呼叫邀请机制。用户可登录云信控制台自助开通,开通路径:选择应用->功能配置->基础功能->信令。...
点击进入详情页
本回答由网易云信提供
展开全部
楼上说的很明白,利用MSComm1_OnComm事件,触发comEvReceive接收事件来处理接收.将需发送的命令赋值于MSComm1的属性Output进行发送.在使用MSComm控件时需注意接收是以ASCII码或二进制码,发送同样.本人建议外部设备为主动方式,VB的通讯收发程序处于被动,以保证通过串口的通讯处于正常.VB的接收窗体模块需隔一段时间(30-60秒间)自动卸载,然后由VB程序唤醒.由于代码较长,在此上传也不易说清,请详细参考"人民邮电出版社"的"VISUAL BASIC 6.0串行通讯实例导航"一书的"第一章 串口调试精灵",对其代码须修改能满足你的要求.
Private Sub MSComm1_OnComm()
Select Case frmMain.MSComm1.CommEvent
Case comEvReceive
'此处添加处理接收的代码
End Select
End Sub
'发送主代码
frmMain.MSComm1.Output = bytSendByte
Private Sub MSComm1_OnComm()
Select Case frmMain.MSComm1.CommEvent
Case comEvReceive
'此处添加处理接收的代码
End Select
End Sub
'发送主代码
frmMain.MSComm1.Output = bytSendByte
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询