求教:有关mscomm控件的多次发送问题!

jackclh 2003-08-22 05:48:30
请教:
我写了一个读卡程序,每次发送一组数据给读卡器,读卡器可正常接收.但当我一次要传送四组数据时(也就是连续向读写卡器发送4次写入4个不同地址的4个数据),我发现读写卡器有时接收不到任何数据(MSComm1_OnComm()事件没执行),但偶尔又只能写入其中两个地址.如果去掉任意三个写入的数据(只写入一个),程序又能写入了.为什么???请大家帮帮忙!
程序的思路大致如下:
Private Sub Form_Load()

MSComm1.CommPort = 1
MSComm1.InputMode = comInputModeBinary
MSComm1.RThreshold = 1
MSComm1.InputLen = 0
MSComm1.Settings = "9600,n,8,1"
MSComm1.InBufferSize = 1024
MSComm1.OutBufferSize = 1024

End Sub

Private Sub Command1_Click()
bh = Left(Trim(Text2.Text), 1)
lb = "2"
sj = Trim(Text2.Text)
stat = xieka(bh, lb, sj)
If Trim(Text1.Text) <> Trim(Text2.Text) And Trim(Text1.Text) <> "" Then
lb = "1"
sj = Trim(Text1.Text)
stat = xieka(bh, lb, sj)
End If
If Trim(Text3.Text) <> "" Then
lb = "3"
sj = Trim(Text3.Text)
stat = xieka(bh, lb, sj)
End If
If Trim(Text4.Text) <> "" Then
lb = "4"
sj = Trim(Text4.Text)
stat = xieka(bh, lb, sj)
End If
End Sub

Function xieka(Strbh As String, Strlb As String, Strsj As String) As String
写卡数据处理代码
End Function

Private Sub MSComm1_OnComm()
数据接收处理代码
End Sub
谁能告诉我问题所在吗?不胜感激!
...全文
25 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Greaitm 2003-09-02
  • 打赏
  • 举报
回复
我的意思是,如果你用Text方式,能够保证只要缓存有数据,你就肯定收到事件,而用二进制方式就不行。
jackclh 2003-08-23
  • 打赏
  • 举报
回复
No! No! No!
comInputModeBinary也能接收到事件,我想不能接收的原因跟comInputModeBinary好象没多少关系.昨晚,接收不到的原因我已经找到了.谢谢 Greaitm(夜草) 的回答,CSDN上有这么多人,就你一人回答我,虽然显得有点寂寞, ^_^ 而且你又没有答对,可我仍然很感谢你!呵呵!
Greaitm 2003-08-22
  • 打赏
  • 举报
回复
是你接收不到而已,comInputModeBinary方式不能每次都接收到事件,用Text方式就可以,如果你用字节数组接收就跟comInputModeBinary方式一模一样了,而且每次都接收得到事件
jackclh 2003-08-22
  • 打赏
  • 举报
回复
Help!
没有人会吗?

1,451

社区成员

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

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