小问题,重金酬谢

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事件没有触发,请教我该怎样做,另我怎样设置一个动态二进制数组来接收数据?定有重谢!





...全文
121 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
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

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧