如何将二进制文件通过串口进行单个字节发送
我的问题是:“如何将二进制文件通过串口进行单个字节发送”。
在网上找的例子都是整串的发送二进制代码。
例如:
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工程可下载,基于:
“如何将一个大文件按每一毫秒发送一个数据发送出去”
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