Kommunikation mit Visual Basic 2008 Programm nur einseitig
Hallo!
Ich versuche gerade meinen AVR über RS232 mit dem PC zu steuern. Dafür habe ich eine Anwendung in Visual Basic 2008 Express angefangen. Wenn ich Daten vom µC via Print "Text" an den PC schicke, kommen diese auch problemlos an.
Leider klappt es nicht in die andere Richtung. Das Programm sollte eigentlich den µC etwas an den PC senden lassen, sobald er Daten empfängt.
Ich habe mich dabei an dieses Tutorial gehalten: https://www.roboternetz.de/wissen/in...rn_des_AVR%27s
Die Codes sehen so aus:
ATmega8:
Code:
$regfile = "m8def.dat"
$crystal = 7372800
$baud = 9600
Dim A As Byte
Do
A = Inkey()
If A > 0 Then
Print "Angekommen!"
End If
Loop
End
VB 2008 Express:
Code:
Option Explicit On
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
SerialPort.Open()
End Sub
Private Sub Form1_FormClosed(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles MyBase.FormClosed
SerialPort.Close()
End Sub
Private Sub DataTimer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DataTimer.Tick
If SerialPort.BytesToRead > 0 Then
Do
TextBox1.AppendText(Chr(SerialPort.ReadByte))
TextBox1.ScrollToCaret()
If SerialPort.BytesToRead = 0 Then
Exit Do
End If
Loop
End If
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
SerialPort.Write("r")
End Sub
End Class
Kann jemand einen Fehler entdecken?
Grüße, Björn
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Zitat von Netzman
hast du schon die rs232-leitungen vom pc-seitigen stecker bis zum controllerpin durchgemessen? gnd von pc mit µC schaltung verbunden? sauber geglättete versorgungsspannung?
betreibst du den avr mit einem externen quarz? fusebits? der interne takt macht bei seriellen verbindungen gerne probleme weil er nicht sonderlich genau ist.
Ja, ich habe alles durchgemessen. Die Massen sind verbunden. Spannung kommt vom LM7805 mit Kondensator. Es ist ein externes Quarz (7,...). Fusebits sind wie im Anhang.
Zitat:
Zitat von Netzman
Zitat:
In dem Moment wo ich z.B. Fusebits auslese kommt der Text sauber an.
wie was? in dem moment in dem du fusebits ausliest ist der controller im programmiermodus (RESET = Low), da sendet er sicher nichts...
Dann muss es der Text sein den er unmittelbar danach sendet.
Grüße, Björn
//EDIT:
Mir ist gerade noch etwas aufgefallen. Der Pegelwandler ist ein Max232N. Allerdings sind scheinbar alle Max232 die ich von Reichelt bekommen habe die "N" Variante (obwohl ich immer den Max232 CPE bestellt habe) - also wird es wohl hoffentlich egal sein. Kondensatoren sind 1µF.
Vom Max zur Sub-D Buchse sind ja nur zwei Leitungen + Masse - oder müssten das bei "beidseitigem" Verkehr mehr sein?
Bin schon echt verunsichert :D
Grüße, Björn