Как лучше всего получить доступ к последовательному порту из VBA?

Sub Stinky()
Dim COM_Byte As Byte
Dim Received_Lines As Long
Dim Input_Buffer As String
Dim Output_Buffer As String
Dim Chars2Send As Long
Dim CharsRemaining As Long
Dim lfsr As Long
    Open "COM7:9600,N,8,1" For Random As #1 Len = 1
    Input_Buffer = ""
    CharsRemaining = 0
    Do
    Get #1, , COM_Byte
    If COM_Byte Then
        If COM_Byte = 13 Then           ' look for CR line termination
            Debug.Print Input_Buffer, Now   ' print it
            Input_Buffer = ""               ' and clear input buffer
        '   generate some output (9 characters)
            lfsr = &H3FFFFFFF - 2 ^ (Received_Lines And 15)
            Output_Buffer = "?@@@@@@@@"
            Chars2Send = 9
            CharsRemaining = 9
            For j = 0 To 2
                Mid(Output_Buffer, 2 + j, 1) = Chr(Asc(Mid(Output_Buffer, 2 + j, 1)) + (31 And Int(lfsr / 32 ^ (2 - j))))
            Next j
            Debug.Print Output_Buffer
        '   show what I generated
            Received_Lines = Received_Lines + 1 ' keep track of received line count
        Else
            Input_Buffer = Input_Buffer & Chr(COM_Byte) ' assemble output buffer
        '   process any characters to send
            If CharsRemaining Then
                CharsRemaining = CharsRemaining - 1
                COM_Byte = Asc(Mid(Output_Buffer, Chars2Send - CharsRemaining, 1))
                Put #1, , COM_Byte
            End If
        End If
    End If
    DoEvents
    Loop
    Close
End Sub

У меня это работает. Я не serial-port уверен, действительно ли visual-basic-applications OPEN устанавливает скорость visual-basic-applications передачи данных, поскольку com-interface я сначала использовал TeraTerm. Мой microsoft-powerpoint COM-порт - это USB-соединение powerpoint с комплектом для прототипирования pptx BASYS3. Он извергает 9600 serial-port символов, записи из 36 символов rs232 заканчиваются CR. Могу произвольно ppt отправлять команды из 9 символов. В ppt приведенном выше коде я генерирую microsoft-powerpoint эти командные строки каждый pptx раз, когда получаю новую microsoft-powerpoint строку. Способ, которым я rs232 выбрал, какой символ отправить, немного pptx неуклюж: возможно, лучший ppt способ - иметь указатель vba на символ и количество символов, и vba-macros когда они будут равны, установить vba-macros их оба в ноль.

vba

serial-port

powerpoint

com-interface

2022-09-07T11:55:43+00:00
Вопросы с похожей тематикой, как у вопроса:

Как лучше всего получить доступ к последовательному порту из VBA?