利用VB串口通信控件MSComm,以二进制方式传输一个900KB左右的文件

发送程序:Dimb()AsByteDimxAsByteDimlAsLong'定义要用到的一些变量Open"c:\a.dat"ForBinaryAs#1‘打开a.DAT文件... 发送程序: Dim b() As Byte
Dim x As Byte
Dim l As Long '定义要用到的一些变量

Open "c:\a.dat" For Binary As #1 ‘打开a.DAT文件
For i = 0 To LOF(1)
Get #1, i + 1, x '读出给X
ReDim Preserve b(l) As Byte
b(l) = x 'x再赋给数组b
l = l + 1
Next i
Close #1

MSComm1.PortOpen = True '打开串口
MSComm1.Output = b '将数组b发送出去
Do
DoEvents
Loop Until MSComm1.OutBufferCount = 0
MSComm1.PortOpen = False '关闭串口

接收程序: Private Sub MSComm1_OnComm()
Dim buffer As Variant
Dim a() As Byte
Dim i
Dim filen As Integer
filen = FreeFile
Select Case MSComm1.CommEvent
Case comEvReceive
buffer = MSComm1.Input
For i = LBound(buffer) To UBound(buffer)
a = buffer '将接收到的数据存入数组a
Next i

Open "d:\b.dat" For Binary As #filen ' 以二进制方式打开
Put #filen, , a() '将a()写入
Close #filen
End Select
End Sub
问题描述:接收到的数据非常大,大概有12M,是发送文件中某一段数据的来回重复。不知道问题出在哪里了 ,但我自己估计问题出现在这两个方面,但我不会改:1.发送方数据量太大,我在想是不是应该分段发,控制一下发送的节奏。2.接收程序中,在将存有接收到数据的数组a以二进制形式写入文件时,不应该放在MSComm1_OnComm()事件中?
哪位高手帮我看看吧 谢谢!
展开
 我来答
百度网友8677a570f
2010-09-14 · 超过23用户采纳过TA的回答
知道答主
回答量:88
采纳率:100%
帮助的人:38.9万
展开全部
你的代码问题太多了。
Open "c:\a.dat" For Binary As #1 ‘打开a.DAT文件
ReDim b(LOF(1))
Get #1, , b
Close #1
''''''''''''''''''''''''
Private Sub MSComm1_OnComm() ‘数据大了会被多次触发,
Dim buffer As Variant
Dim a() As Byte
buffer = MSComm1.Input
a=buffer
call 存储(a)
end sub
Private Sub 存储(a() as byte)
Open "d:\b.dat" For Binary As #filen
Put #filen, LOF(1), a()
Close
end sub
'电脑没按VB, 没调试,有错误自己修修把
hilinx
2010-09-12 · 超过42用户采纳过TA的回答
知道答主
回答量:216
采纳率:0%
帮助的人:106万
展开全部
太阳雨多年积攒极其珍贵的原创VB串口通信技术资料V3.0(800M)

1.VB串口通信编程源码200个,多种行业多种应用...
2.VB串口通信技术文章160篇,详尽地对VB串口通信的诠释...
3.VB串口通信电子书籍16部,工业通信名家著作,经典细致...
4.VB串口通信控件16个,简化串口通信编码,提高开发效率...
5.VB串口视频教程46个,两套完整视频教程,讲解直观,更快掌握...
6.OSI网络模型教程48M,帮助你学习网络通讯基础...
7.串口硬件层知识资料包24M,对RS232,RS422,RS485等串行接口的完美解释...
8.串口调试工具80个,应用于各种串口调试与校验计算...
9.程序员发展类文章和书籍12部,帮助您的成长,健康和发展....
10.更送虚拟串口调试软件, 帮助你在没有串口的电脑上也能正常调试...

你在淘宝搜索“太阳雨串口资料”就可以找到,希望可以帮助到你。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式