vb6.0对串口操作

xwylpsy 2010-01-25 08:56:43
用vb6.0怎样对串口(端口号为COM4)进行读取字符串和写入字符串?最好有例子,谢谢了
...全文
213 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiangshou2301 2010-01-26
  • 打赏
  • 举报
回复
MSComm1.CommPort = 3

不是4
cbm6666 2010-01-26
  • 打赏
  • 举报
回复
补充 我是指一般的应用

Loop While Timer - t1 < 1.5
没问题的 只不过马上跳出罢了

最好用 GetTickCount这个API
cbm6666 2010-01-26
  • 打赏
  • 举报
回复
这里的 Timer 是VB自带的涵数, 非控件

但是这有一个致命的错误, 如果是三班制的作业 午夜班的人可就要倒大霉了, 因为Timer一跨日便归零
xwylpsy 2010-01-26
  • 打赏
  • 举报
回复
二楼那个关于串口接收的代码中
Dim t1 As Long, str1 As String
t1 = Timer
Select Case MSComm1.CommEvent
Case comEvReceive '收到 RThreshold定义的字符数1字节

Do
DoEvents
Loop While Timer - t1 < 1.5
com_String = MSComm1.Input

End Select
“Timer”是什么来的?是Timer控件吗?com_string类型是byte还是string?
zdingyun 2010-01-25
  • 打赏
  • 举报
回复
qiangshou2301 2010-01-25
  • 打赏
  • 举报
回复
猴哥的非常清楚
chinaboyzyq 2010-01-25
  • 打赏
  • 举报
回复
以下例子,仅供参考:

'初始化串口

Private Sub iniMscomm()

On Error Resume Next

'=====-----初始化通信串口-----=====

MSComm1.CommPort = 4 '使用 COM4
MSComm1.Settings = "9600,N,8,1" '9600 波特,无奇偶校验,8 位数据,一个停止位
MSComm1.PortOpen = True '打开端口

MSComm1.RThreshold = 1 '缓冲区有1个字节就产生OnComm事件
MSComm1.InputLen = 0 '为 0 时,使用 Input 将使 MSComm 控件读取接收缓冲区中全部的内容。
MSComm1.InputMode = comInputModeText 'Input以二进制形式取回用comInputModeBinary,以文本形式取回是comInputModeText
MSComm1.RTSEnable = True
MSComm1.InBufferCount = 0 '清空缓冲区

End Sub

Private Sub Form_Load()
iniMscomm '初始化通信串口

End Sub

Private Sub Command1_Click() '发送数据
MSComm1.Output = "@@TB13800311500B"

End Sub

Private Sub MSComm1_OnComm()'接收数据

Dim t1 As Long, str1 As String
t1 = Timer
Select Case MSComm1.CommEvent
Case comEvReceive '收到 RThreshold定义的字符数1字节

Do
DoEvents
Loop While Timer - t1 < 1.5
com_String = MSComm1.Input

End Select

End Sub

7,785

社区成员

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

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