读书人

怎么将二进制文件通过串口进行单个字节

发布时间: 2012-01-23 21:57:28 作者: rapoo

如何将二进制文件通过串口进行单个字节发送
我的问题是:“如何将二进制文件通过串口进行单个字节发送”。
在网上找的例子都是整串的发送二进制代码。
例如:
Dim MyFile() As Byte
Open "e:\binary.bin" For Binary As #1
ReDim MyFile(LOF(1))
Get #1, , MyFile
Debug.Print MyFile
Close #1

Dim Buf As Variant
Buf = MyFile
MSComm1.CommPort = 1
MSComm1.OutBufferSize = 1024
MSComm1.InBufferSize = 512
MSComm1.RThreshold = 1
MSComm1.SThreshold = 1
MSComm1.InputLen = 1
MSComm1.Settings = "9600,N,8,1"
MSComm1.PortOpen = True
MSComm1.OutBufferCount = 0
MSComm1.InBufferCount = 0
MSComm1.Output = Buf
我想要把 buf 中的内容进行单个字节的发送。
在basic中很容易实现,在vb中折腾两天了。
请各位指点!多谢!


[解决办法]
http://www.vbgood.com/viewthread.php?tid=82992&page=1###
上述链接有以下代码的VB工程可下载,基于:
“如何将一个大文件按每一毫秒发送一个数据发送出去”

VB code
Option Explicit    Dim sj As String    Dim yTemp() As Byte    Dim strData As String    Dim sTemp As String    Dim i As Long    Dim MySize As LongPrivate Sub Command1_Click()    CommonDialog1.CancelError = True    On Error GoTo ErrHandler    ' 设置标志    CommonDialog1.Flags = cdlOFNHideReadOnly    ' 设置过滤器    CommonDialog1.Filter = "All Files (*.*)|*.*|"    ' 指定缺省的过滤器    'CommonDialog1.FilterIndex = 2    ' 显示“打开”对话框    CommonDialog1.ShowOpen    ' 显示选定文件的名字    MsgBox CommonDialog1.FileName    MySize = FileLen(CommonDialog1.FileName)    Text2 = MySize    send    Exit SubErrHandler:    ' 用户按了“取消”按钮    Exit SubEnd SubPrivate Sub send()    Dim a(0) As Byte    Dim i As Integer    Dim timeOld As Single    Cls    ' 设置“CancelError”为 True    On Error GoTo ErrHandler    timeOld = Timer    Text1.Refresh    Open CommonDialog1.FileName For Binary As #1        ' 若要以其他方式打开文件,必需先关闭此文件。        For i = 1 To MySize            Get #1, i, a(0)            MSComm1.Output = a            DoEvents        Next    Close #1    Text1 = Timer - timeOld    Exit SubErrHandler:End Sub
[解决办法]

什么叫“单个字节发送”?

你只发送一个字节吗?

Dim Buf(0) As Byte

Buf(0) = MyFile(0)
MSComm1.Output = Buf

读书人网 >VB

热点推荐