mcomm 问题 在线等解答了~~~~~

shen_wei 2009-09-11 10:53:24
用mscomm控件做的 往磁卡里写数据。该磁卡内存容量是1k 分成62块 每一块里面有16位,现在往里面保存数据
要选择不同的块号,来保存数据,发送代码如下:

Dim sBuf(19) As Byte //定义一个byte()20位
sBuf(0) = &H13
sBuf(1) = &H41
If ComboBox7.Text = "A" Then
sBuf(2) = &H1
Else
sBuf(2) = &H2
End If
Dim j As Integer
Dim k As Integer
Dim nConut As Integer = 0
Dim fpvalue As String
fpvalue = mydate.Replace("-", "")
fpvalue = fpvalue + "0000000000000000000000000000" //现在有数据 400位
For j = 4 To 39
If (j - 3) Mod 4 = 0 Then
j = j + 1
sBuf(3) = CLng("&H" + CStr(Hex(j)))// 选择块号来保存数据
Else
sBuf(3) = CLng("&H" + CStr(Hex(j)))
End If
Dim i As Integer = 4
For k = 1 To 32 // 把数据分配到byte()
If nConut = 25 Then
Exit Sub
End If
sBuf(i) = CLng("&H" + Mid(fpvalue, k + (nConut * 32), 2))
i = i + 1
k = k + 1
Next
nConut = nConut + 1
If SendByte(sBuf) = False Then //向串口发送数据,发送数据完全正确
MessageBox.Show("写指纹失败!")
End If
Next j

现在的问题是:

'收到数据产生MSComm事件
Private Sub AxMSComm1_OnComm(ByVal sender As Object, ByVal e As System.EventArgs) Handles AxMSComm1.OnComm

{ Dim rBuf() As Byte
System.Threading.Thread.Sleep(600)
rBuf = AxMSComm1.Input //产生mscomm事件后的处理 rbuf()没有返回任何数据
If rBuf(3) = 164 Then //对返回的信息判断
}


现在磁卡能写入数据 块号是 4—9 号的块里有数据,10号以上的块里都没有写入数据,请问这个是怎么回事?
希望高人能解决下。不胜感激!!!!
...全文
107 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
shen_wei 2009-10-10
  • 打赏
  • 举报
回复
等待解决了。。。
高人来指点了。。。。。。
shen_wei 2009-09-27
  • 打赏
  • 举报
回复
高人怎么不来解决啊。。。。。。。。。。。。
43720938 2009-09-24
  • 打赏
  • 举报
回复
mark
citymall 2009-09-13
  • 打赏
  • 举报
回复
呵呵,不错
citymall 2009-09-13
  • 打赏
  • 举报
回复
呵呵,不错
citymall 2009-09-13
  • 打赏
  • 举报
回复
呵呵,不错

8,834

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 组件/控件开发
社区管理员
  • 组件/控件开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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