Verbindung wurde natürlich überkreuzt angeschlossen.
Es Passiert überhaupt nichts bei der Übertragung, beim System B ist das
RXNE kurz gesetzt und irgentsoein komisches Zeichen wird empfangen (auch
ohne Anschluss des 2. Prozesosrs) anschließend wird nichts mehr
empfangen.
Es ist das erste mal dass ich etwas per USART mache, habe ich irgentwo
einen Denkfehler, muss ich irgentetwas noch ändern?
Wäre euch sehr dankbar wenn ihr mir Ratschläge und testideen geben
könntet!
freundliche Grüße
Du weist ja den RX/TX Pins auf dem STM32 gar nicht den USART zu. Du
musst bei beiden
> GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP;
einstellen, und so etwas:
Strickwettbewerbgewinner schrieb:> Du weist ja den RX/TX Pins auf dem STM32 gar nicht den USART zu. Du> musst bei beiden>> GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP;> einstellen, und so etwas:GPIO_PinAFConfig (GPIOA, GPIO_PinSource9,
GPIO_AF_USART1);
> GPIO_PinAFConfig (GPIOA, GPIO_PinSource10, GPIO_AF_USART1);ausführen, damit der
USART auch diese Pins verwendet. Kann bei dir aufm
> F1 auch etwas anders sein, ich kenn mich mehr mit dem F4 aus.
Also ich habe das meiste hier aus nem DemoProgramm genommen.
Bei TX ist eh AF_PP configuriert
/* Configure USARTy Tx as alternate function push-pull */
GPIO_InitStruct.GPIO_Pin = USARTy_TxPin;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(USARTy_GPIO, &GPIO_InitStruct);
Beim RX muss aber der Mode ein Input Mode sein, also sollte
GPIO_Mode_IN_FLOATING; doch Passen?
Das mit den anderen Beiden Zeilen klingt Logisch:
GPIO_PinAFConfig (GPIOA, GPIO_PinSource9, GPIO_AF_USART1);
GPIO_PinAFConfig (GPIOA, GPIO_PinSource10, GPIO_AF_USART1);
Allerdings gibts die Funktion beim F1 nicht, oder heißt anders und
GPIO_AF_USART1 gibts auch nicht, muss ich ma nachlesen, was es da so
gibt!
Habe kein Terminalprogramm, und auch keine Com Buchsen auf den
Bausteinen.
Das ganze sind einfach 2 Steuerungen die dann 15m auseinander sein
sollen und Daten untereinander Kommunizieren sollen.
Übrigens hab grad etwas merkwürdiges entdeckt, beim RX Spannungsteiler
liegen 4V an nachm Max232 und in der Mitte 0V. -> ?
Das mit der Buchse aus Grafikkarte war natürlich Unfug.
Ich hätte ein LPT auf RS232 kabel hier, dass ich nicht zerstören will,
welche Pins vom LPT müsste ich da verwenden?
So Habe beim LPT zu RS232-Kabel am 25Pol Stecker Pin2 TXD mit dem RXD
vom Atmega verbunden und PIN3 mit TXD
PIN7 GND mit meiner schaltung verbunden.
Terminalprogramm gestartet, Baudrate eingestellt, aber nichts
passiert...
xy schrieb:> Pins brauche ich eh nur RX,TX, GND und 5V, korrekt?
Hast du einen Plan, wie du das anschließen willst? Zum PC bzw.
RS-232/USB-Wandler gehen RX, TX und Gnd. 5V haben da eher nichts zu
suchen?
gerade beim Atmega Board den Atmega rausgenommen und RX TX verbunden, es
passiert nicht wirklich viel. in Hterm im Received Bereich steht immer
das gesendete, warum auch immer (is aber immer auch im ausgesteckten
zustand) aber bei Transmitted Data steht gar nix...
Nur Funktioniert noch immer nichts, zum test 11 und 12 miteinander
Verbunden
Spannungen PAssen, PIN2 9V, PIN6 -9V.
Allerdings auf RX und TX messe ich -9V nachdem ich senden drücke in
Hterm messe ich +1,7V. Hoffe damit kann mir jemand helfen...
Mit einem Multimeter an RX und TX messen, mach nicht wirklich Sinn.
Wenn kein Datenverkehr ist, kann man nur die statischen Pegel messen.
Mit Datenverkehr wirds aber sowas von sinnlos. Oszi her.
Am STM32 tut sich leider gar nix beim Max, wenn ich ein Zeichen sende
steht im Terminal das als Received, is aber das selbe wie wenn ich das
Kabel ausstecke. Spannungspegel passen. Dis Pegel am Rx und Tx auf RS232
seite sind annähernd 0 ändern sich minimal bei übertragung...
Die Ausgangspegel sehen jetzt ganz okay aus, und beim Senden vom
Terminal kommt auch nix mehr zurück bei Receive, außer wenn man den µC
Resettet und dann sendet steht einmal <0> im Terminal. Allerdings kommt
wohl beim Prozessor nix an und umgekehrt auch nicht...
xy schrieb:> ..., wenn ich ein Zeichen sende steht im Terminal das als Received,> is aber das selbe wie wenn ich das Kabel ausstecke.
Dann hast du wohl im Terminalprogramm das lokale Echo aktiviert.
Also beim Atmega klappt alles wie schon erwähnt, habe die 2 Max232 auch
schon vertauscht, also Hardwaremäßig müsste es Passen, allerdings müsste
ich dan Softwaremäßig einen Fehler haben.
Aktuelle Software (will nur ein Zeichen zum PC Senden erstmal.
Die Testled auf GPIOC 9 Blinkt die ganze zeit, also die Software
erkennts als Zeichen übertragen.
Hab aber gerade eine Vermutung an was es liegt bekommen...