mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ESP8266 über einen STM32F4 ansteuern


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Marcel L. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schönen Abend euch,

ich versuche bereits den ganzen Tag einen ESP8266 an meinem STM32F4 
Disco zum Laufen zu bringen.

Ich verwende das ESP Modul von Reichelt (JOY-iT Wifi Modul ESP8266).
Angeschlossen habe ich das ganze wie folgt:

- ESP VCC     -> STM 3v VCC
- ESP GND     -> STM GND
- ESP CH_PD   -> STM 3v VCC
- ESP TX      -> STM PC11 (UART4 TX)
- ESP RX      -> STM PC10 (UART4 RX)

Ich habe mich an der Doku des ESPs gehalten und eine Baudrate von 115200 
verwendet.

Bei der Konfiguration der beiden Pins für UART bin ich mir nicht ganz 
sicher,
aber es sollte eigentlich passen RX und TX mit einem Pullup versehen zu 
haben, oder? Ich habe jedoch auch schon versucht, RX als OpenDrain zu 
konfigurieren und beiden Pins auf NoPull zu setzten, selbiges Ergebnis.
Konfiguriert wurden diese wie folgt:
  __HAL_RCC_GPIOC_CLK_ENABLE();

  GPIO_InitTypeDef uartPinConfiguration;
  uartPinConfiguration.Alternate = GPIO_AF8_UART4;
  uartPinConfiguration.Mode = GPIO_MODE_AF_PP ;
  uartPinConfiguration.Pull = GPIO_PULLUP;
  uartPinConfiguration.Pin = GPIO_PIN_10 | GPIO_PIN_11;
  uartPinConfiguration.Speed = GPIO_SPEED_FREQ_VERY_HIGH;

  HAL_GPIO_Init(GPIOC, &uartPinConfiguration);

Nun die Konfiguration des UARTs:
  __HAL_RCC_UART4_CLK_ENABLE();
  
  UART_HandleTypeDef uartConfiguration;
  uartConfiguration.Instance = UART4;
  uartConfiguration.Init.BaudRate = 115200;
  uartConfiguration.Init.Mode = UART_MODE_TX_RX;
  uartConfiguration.Init.WordLength = UART_WORDLENGTH_8B;
  uartConfiguration.Init.Parity = UART_PARITY_NONE;
  uartConfiguration.Init.StopBits = UART_STOPBITS_1;
  uartConfiguration.Init.HwFlowCtl = UART_HWCONTROL_NONE;

  HAL_UART_Init(&uartConfiguration);

Um zu testen ob mein Code funktioniert, versuche ich den AT Command "AT" 
zu senden. Diese soll laut Dokumentation "OK" zurückgeben, sollte alles 
in Ordnung sein.
  uint8_t* atCommand = (uint8_t*)"AT\r\n";
  HAL_StatusTypeDef status = HAL_UART_Transmit(&uartConfiguration, atCommand, 6, 2000);

  uint8_t buffer[8];
  status = HAL_UART_Receive(&uartConfiguration, buffer, 2, 2000);

Laut dem Status war das senden des AT Befehls erfolgreich.
Beim empfangen läuft mein Code in einen Timeout. Ich habe mal ein 
bisschen in den HAL Treiber hinein debuggt, da scheint die Funktion 
"UART_WaitOnFlagUntilTimeout()" den Timeout zu verursachen.

Leider habe ich keinen Logic Analyzer um damit zu überprüfen ob der ESP 
nicht doch etwas sendet/empfängt.


Ich hoffe jemand kann mir trotzdem auf die Sprünge helfen. Schonmal 
Danke im Voraus.


Beste Grüße
Marcel

Autor: Harry L. (mysth)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Marcel L. schrieb:
> RX und TX mit einem Pullup versehen

Nein!
Keine PullUps!

Autor: Rufus Τ. F. (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Marcel L. schrieb:
> - ESP TX      -> STM PC11 (UART4 TX)
> - ESP RX      -> STM PC10 (UART4 RX)

Üblicherweise verbindet man Sende- und Empfangsleitungen, d.h. TX mit 
RX.

Autor: Carsten F. (carsten_f664)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
Ich denke Du solltest RX an TX und umgekehrt verbinden
Gruss, Carsten

Autor: RP6conrad (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Erst jeden Gerat separat prufen an eine PC mit ein terminal 
programma(hterm). Wen das funzt konnen sie beide kupplen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.