小问题,重金酬谢

sun_star 2001-09-12 05:44:35
我有一个声级计,需向其发送1CH,它以二进制格式回送瞬时声级,若用MSCOMM做该怎样做?
我这样做:
在FORMLOAD:
MSComm1.CommPort = 1
MSComm1.Settings = "19200,n,8,1"
MSComm1.InputMode = comInputModeBinary
MSComm1.PortOpen = True
MSComm1.InputLen = 0
在COMMAND:
MSComm1.Output = Chr(&H1C)
在MSCOMM的ONCOMMON:写一个MSGBOX.若有数据进来,应能触发ONCOMMON事件,从而显示MSGBOX.
但MSGBOX没有显示,ONCOMMON事件没有触发,请教我该怎样做,另我怎样设置一个动态二进制数组来接收数据?定有重谢!





...全文
87 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
ozw 2001-09-13
不要只看发送数据
你是怎么读的?
回复
sun_star 2001-09-13
谢谢各位的帮助,但我用各位的方法都没有实现,苦闷啊!
但声级计自带的测试程序是实现了的,也是VB做的(没给源程序),不知为何我就做不对!
回复
ozw 2001-09-13
用二进制通过Mscomm传送数据,一定要用字节数组
dim byt() as byte
redim byt(0)
byt(0)=&H1C
MSComm1.output=byt

不需要用Chr(不对),Val也不用,因为&H1C本身就是数值型
ONComm实践的触发有一些条件,比如你要设置Rtheshold,Sthreshold
比如Rtheshold=1的时候,收到一个字节就触发comEvReceive事件

回复
Sunnuy 2001-09-13
首先必须定义VARIANT数组,然后将值赋给该数组,
然后接收时采用:
aaa=mscomm1.input
发送时采用:
mscomm1.output=aaa
回复
songyangk 2001-09-13
你需要一个Variant型的变量做跳板

Dim sbyte(0) As Byte
dim a as variant

sbyte(0) = Val(&HC1)
a = sbyte
MSComm1.Output = a

试试看怎么样了。
回复
sun_star 2001-09-13
ozw:在ONCOMM 事件中,我只写了一个MSGBOX函数,我只是看看有没有触发ONCOMM事件,我准备在ONCOMM事件中读取数据?
回复
sun_star 2001-09-12
拜托各位:能不能给我详细的信息,我这样做,还是不行:
Dim sbyte() As Byte
ReDim sbyte(1)
sbyte(0) = Val(&HC1)
Dim s As String
s = sbyte
MSComm1.Output = StrConv(s, vbUnicode)

各位,我该怎么办?救救我吧!分一定给?
回复
wyzegg 2001-09-12
使用BYTE不要用CHR
回复
sdyqingdao 2001-09-12
buhui
回复
pengcheng 2001-09-12
up
回复
发帖
VB基础类
创建于2007-09-28

7479

社区成员

VB 基础类
申请成为版主
帖子事件
创建了帖子
2001-09-12 05:44
社区公告
暂无公告