Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: USB sarjaliikenne toimii VB6:lla

oh3gdo [04.03.2024 19:05:25]

#

Hei kiitos hyvästä palvelusta.

Minulla oli pieni ongelma VB6:n sarjalikenteessä.
Se ei toiminut lainkaan, vaikka Laitehallinta näytti ihan toimivaa porttia.

Mietin miten VB6:n sarjaliikenne ei voi toimia?

Olen tehnyt noita sarjaliikenne juttuja VB6:lla jo ainakin 30 vuotta, mutta tällä viikolla tein uuden USB:lla toimivan prosessoriyksikön (PIC18F57J50) siinä on yksi normaali sarjaliikenne nasta tai nastat, mutta siihen ei ole mitään kiinnitelly.
Se USB sarjaliikenne ei tullut PC:lle, josta tuli myös sähkö tuolle testi piirilevylle.
Siinä oli toinen USB:n kayttä toimiva sarjaliikenne.
Lopulta sain tuon sarjaliikenteen toimimaan USB:llä ja heti laitoin sen myös omaan Term-ohjelmaani. Se on minulla ollut varmaankin 20 vuotta, mutta joka vuosi siihen tulee pieniä parannuksia.
En laita sitä Term ohjelmaa tähän, mutta täydellisen sarjaliikenneohjelman.

 ' USB serial toimii 4.3.2024 Pekka Ritamäki
   Private Sub Form_Load()
Form1.Caption = "USB Serial Probyte"
         With MSComm1
            .Handshaking = 2 - comRTS
            .RThreshold = 1
            .RTSEnable = True
            '.Settings = "9600,n,8,1" jos USB on kysmyksessä kaikki nopeudet toimivat!
             .Settings = "115200,n,8,1"
            .SThreshold = 1
            .PortOpen = True
            ' Jätä kaikki muut asetukset  delfauktiksi .
         End With
         Text1.text = ""
End Sub

  Private Sub Form_Unload(Cancel As Integer)
         MSComm1.PortOpen = False
      End Sub

Private Sub MSComm1_OnComm()
 Dim InBuff As String
Dim text As String

         Select Case MSComm1.CommEvent

          ' Käsittele jokainen tapahtuma tai virhe sijoittamalla
          ' koodi kunkin tapauslausekkeen alla.

            Case comEventBreak   ' Tauko vastaanotettiin
            Case comEventCDTO    ' CD (RLSD) -aikakatkais
            Case comEventCTSTO   ' CTS-aikakatkais
            Case comEventDSRTO   '  DSR-aikakatkaisu
            Case comEventFrame   ' Kehysvirhe
            Case comEventOverrun ' Tiedot menetetty
            Case comEventRxOver  ' Receive buffer overflow.
            Case comEventRxParity   'Vastaanota puskurin ylivuoto.
            Case comEventTxFull  ' Lähetyspuskuri täynnä.
            Case comEventDCB     'Odottamaton virhe noudettaessa DCB]

         ' Tapahtumat
            Case comEvCD   ' Muutos CD-linjassa.
            Case comEvCTS  ' Muutos CTS-linjassa.
            Case comEvDSR  ' Muutos DSR-linjassa.
            Case comEvRing '  Muutos Ring Indikaattorissa
            Case comEvReceive ' Vastaanotettu Rthreshold # merkkiä
               InBuff = MSComm1.Input
               Call HandleInput(InBuff)
            Case comEvSend ' On  SThreshold määrä
                           '  merkkiä lähetyspuskurissa.
            Case comEvEOF  'EOF-merkki löytyi
                            ' jonosta.
         End Select



      End Sub

      Sub HandleInput(InBuff As String)
       '   Tämä käsittelee merkkidatasi. Tämä
          ' sisältää kiinnitysmerkkejä, jäsennysmerkkijonoja,
          ' tietokenttien erottaminen jne. Tässä tapauksessa sinä
          ' vain näyttävät tiedot TextBoxissa..
         Text1.SelStart = Len(Text1.text)
         Text1.SelText = InBuff
End Sub

Grez [05.03.2024 10:16:32]

#

Mikäs siinä sitten oli alunperin ongelmana, kun se ei toiminut?

Vastaus

Muista lukea kirjoitusohjeet.
Tietoa sivustosta