如何从串口读数据?(100)

Sammi52 2003-09-29 12:28:55
磁卡阅读器将磁卡数据输出到计算机的串口,如何写代码从串口读取数据呢?
...全文
88 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sammi52 2003-09-30
  • 打赏
  • 举报
回复
当设置RThreshold = 12 时,显示信息为
;12345678??

当我把它设置成RThreshold = 30时,第一次刷卡时不显示,第二次刷卡时显示两行相同内容
;12345678??
;12345678??

RThreshold为要接受的字符数,为什么会这样呢?我不明白
daozi1980 2003-09-29
  • 打赏
  • 举报
回复
先选择二进制流接受
dim buffer as viriant
dim buf() as byte

........
buffer=mscomm.input
buf=buffer
..........

其他的楼上的兄弟都写的很清楚。
Sammi52 2003-09-29
  • 打赏
  • 举报
回复
当设置RThreshold = 12 时,显示信息为
;12345678??

当我把它设置成RThreshold = 30时,第一次刷卡时不显示,第二次刷卡时显示两行相同内容
;12345678??
;12345678??

RThreshold为要接受的字符数,为什么会这样呢?我不明白
Sammi52 2003-09-29
  • 打赏
  • 举报
回复
要设置PortOpen=true;

我使用定时器可实现读

Private Sub Timer1_Timer()
If MSComm1.PortOpen = False Then MSComm1.PortOpen = True
buffer$ = buffer$ & MSComm1.Input
If buffer$ <> "" Then MsgBox buffer$
End Sub
maskzha 2003-09-29
  • 打赏
  • 举报
回复
Sub MSCommInit() '串口初始化
MSCommKQ.CommPort = 1
MSCommKQ.Settings = "9600,n,8,1"
MSCommKQ.RThreshold = 12
MSCommKQ.PortOpen = True
End Sub

Private Sub MSCommKQ_OnComm()
'串口通讯事件
Dim rxd As Variant
Dim sRxdData, sChk As String
Select Case MSCommKQ.CommEvent
Case comEvReceive
rxd = MSCommKQ.Input   '获得数据
sRxdData = rxd
sRxdData = Right(sRxdData, 12)
sChk = Right(sRxdData, 2)
If sChk = vbCr + vbLf Then
sRxdData = Mid(sRxdData, 1, 10)  '卡号为前10位
OnNewCard (sRxdData)
Beep
End If
End Select
End Sub

'处理打卡事件
Private Sub OnNewCard(sCardId As String)
MsgBox sCardId

' ......

End Sub
zizzfish 2003-09-29
  • 打赏
  • 举报
回复
MSComm1.RThreshold 的值不能为0
Sammi52 2003-09-29
  • 打赏
  • 举报
回复
“当事件为datareceive时”是什么意思?
我刷卡后程序没任何响应,OnComm事件根本就不触发!
CaiNiao008 2003-09-29
  • 打赏
  • 举报
回复
首先你要设置一下

MSComm1.CommPort = 1 '设置端口号
MSComm1.Settings = "1200,N,8,1" '设置波特率/是否有奇偶校验/数据位/停止位
MSComm1.InputLen = 0 '全部读取缓存里的数据
MSComm1.InputMode = comInputModeText '数据读取方式

我用过主动读取,原理是用一个Timer反复的取数据...
MSComm1.Input 就是每一次读取的数据....

希望能对你有点帮助;)
冰山来客123499 2003-09-29
  • 打赏
  • 举报
回复
主动读取数据的话
mydata=me.mscomm1.input
要求中断读取的话
在OnComm事件中读取
当事件为datareceive时
mydata=me.mscomm1.input

7,763

社区成员

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

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