串口问题

KenjiSato 2003-08-21 04:43:35
以下是VB的源码,移到ACCESS中无法读出串口的数据,请各位高人指点,源码如何上传?


Private Sub Command读温度_Click()
Dim Bsend8(7) As Byte 'Tx 1 byte command
Dim Write_timer As Long
Dim recie As String
Dim nsum As Integer
Dim IngN路 As Integer, Ibuf As Long
Dim I As Integer

If MSComm1.PortOpen = True Then MSComm1.PortOpen = False
MSComm1.CommPort = 1
MSComm1.PortOpen = True


Bsend8(0) = Val("&H1") '&H14 'F5 '14 '模块号,每个模块带8个传感器
Bsend8(1) = &HF2 '
Bsend8(2) = 2 * 8 '+ 1 ' &H11 '&HB '传感器路数
'Bsend8(2) = 2 * Me.TxtN路 '+ 1 ' &H11 '&HB
Bsend8(3) = &H50 ' &H50 '
Bsend8(4) = &H4 '
Bsend8(5) = &H5
Bsend8(6) = &H6 '
nsum = Val(Bsend8(0)) + Val(Bsend8(1)) + Val(Bsend8(2)) + Val(Bsend8(3)) + _
Val(Bsend8(4)) + Val(Bsend8(5)) + Val(Bsend8(6)) '数据类型转换并求和
Bsend8(7) = nsum Mod 256 '除256取余数,本例校验和=&H51,十进制81
Ing收记数 = 0
' Me.MSComm1.DTREnable = False
Text2.SetFocus
Text2.SelText = "" & vbCrLf

MSComm1.Output = Bsend8
Write_timer = Timer
Do While Timer < Write_timer + 2
'DoEvents '在2秒的等待中,不允许串口中断处理,否则等待不会有结果
If Me.MSComm1.InBufferCount <> 0 Then
recie = MSComm1.Input
rex = AscB(recie) '''''
IngN路 = Int(Ing收记数 / 2)
If Ing收记数 <> 2 * Int(Ing收记数 / 2) Then
Ibuf = 256 * rex + tem0
If Ibuf >= 32768 Then Ibuf = Ibuf - 65536
Text2.SelText = Now() & " - " & I & " - " & 0.01 * Ibuf & vbCrLf
End If

Ing收记数 = Ing收记数 + 1
tem0 = rex

If Ing收记数 = Bsend8(2) + 1 Then Exit Do
End If
Loop

'timer over error
If Timer >= Write_timer + 2 Then
MsgBox "串口通信故障!", vbExclamation
Exit Sub
End If

End Sub

Private Sub MSComm1_OnComm()
Dim reaaa As String
Do Until MSComm1.InBufferCount = 0
reaaa = MSComm1.Input
rex = AscB(reaaa)
Text10.SelText = Hex(rex)
Text10.SelText = " "

Loop
End Sub

...全文
29 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuyann 2003-08-23
  • 打赏
  • 举报
回复
要添加控件先
kinmax 2003-08-23
  • 打赏
  • 举报
回复
ACCESS不能做串口通讯程序吧,因为没有MSCOMM控件
KenjiSato 2003-08-23
  • 打赏
  • 举报
回复
mscomm32已加过的
changechange 2003-08-23
  • 打赏
  • 举报
回复
找到 MSComm32.OCX ,先用regsrv32.exe注册
然后在工具->引用 ->Microsoft Comm control 5.0

然后在看程序运行是否对错吧,否则无从谈起

cheny1234 2003-08-21
  • 打赏
  • 举报
回复
不懂!
不过MSComm1是不是要引用点什么吧!
vba和vb不是100%相等的。
课程背景Modbus 协议是工业自动化控制系统中常见的通信协议,协议的全面理解是个痛点。本课程主讲老师集10多年在Modbus协议学习、使用中的经验心得,结合当前物联网浪潮下Modbus协议开发的痛点,推出这套面向Modbus 协议初学者的课程。本课程不同于以往市面课程只是协议讲解无实现代码,而是采用讲解与实践并重的方式,结合STM32F103ZET6开发板进行手把手编程实践,十分有利于初学者学习。涵盖了学习者在Modbus协议方面会遇到的方方面面的问题,是目前全网首个对Modbus协议进行全面总结的课程。课程名称   协议讲解及实现>>课程内容1、Modbus 协议的基础。2、Modbus协议栈函数编程实现。3、Modbus协议在串行链路编程实现。4、Modbus协议在以太网链路编程实现。5、常见问题的解决方法。带给您的价值通过学习本课程,您可以做到如下:1、全面彻底的理解Modbus协议。2、理解在串行链路,以太网链路的实现。3、掌握Modbus协议解析的函数编程方法,调试工具的使用。4、掌握多个串口,网口同时运行同一个Modbus协议栈的方法。5、掌握Modbus协议下,负数,浮点数等处理方法。讲师简介许孝刚,山东大学工程硕士,副高职称,技术总监。10多年丰富嵌入式系统开发经验,国家软考“嵌入式系统设计师”。2017年获得“华为开发者社区杰出贡献者”奖励。

7,714

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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