Forum: Mikrocontroller und Digitale Elektronik USART --- UART


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.
von Tim S. (169)


Lesenswert?

Hallo Leute,

ich möchte mithilfe der "USART"-Schnittstelle des Arm Cortex M3 
(STM32F100RB) Daten an die "UART"-Schnittstelle des Arduino Uno 
verschicken um diese schließlich über putty anzuschauen.
Da ich kein usb-rs232 converter rumliegen habe und nicht noch einen erst 
bestellen möchte muss ich dies über den Arduino machen.
Ist dies möglich? Oder habt ihr da eine einfachere Lösung.
Ein LCD habe ich ebenfalls nicht :)


Vielen Dank :)

von Oliver J. (skriptkiddy)


Lesenswert?

Einfach den AVR aus dem Sockel ziehen und dann RX und TX von STM32 an D0 
und D1 vom Arduino anschließen (Aber gekreuzt).

Der STM32 ist 5V-Tolerant an allen Pins außer an den Analogen Eingängen.


Gruß Oliver

von Tim S. (169)


Lesenswert?

Muss der AVR unbedingt aus dem Sockel entnommen werden. Ich denk es geht 
auch ohne!
Ich benutze die stm32-Library aber kann leider nichts empfangen.

von Oliver J. (skriptkiddy)


Lesenswert?

Tim S. schrieb:
> Muss der AVR unbedingt aus dem Sockel entnommen werden. Ich denk es geht
> auch ohne!
Nimm ihn doch einfach raus. Ich weiß nicht was der an den beiden Pins 
tut.
Du etwa?

Tim S. schrieb:
> Ich benutze die stm32-Library aber kann leider nichts empfangen.
Selbst damit kann man so Einiges falsch machen. Habe ich selbst kürzlich 
erst feststellen müssen. Zeig mal den Code.

Gruß Oliver


Edit: Bekommst du denn ein Echo im Putty, wenn du D0 und D1 auf dem 
Arduino kurzschließt?

von Tim S. (169)


Lesenswert?

#include "stm32f10x.h"
#include "stm32f10x_gpio.h"
#include "stm32f10x_rcc.h"
#include "stm32f10x_usart.h"


void USART_SendData(USART_TypeDef* USARTx, uint16_t Data);

void init(){
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
  GPIOC->CRH=0x0020;
}

int main(void)
{
  init();

  int i;

  while(1)
    {
    USART_SendData(USART1, 1);

    for(i=0;i<0x900000;i++);
    }
}

von Oliver J. (skriptkiddy)


Lesenswert?

Das reicht nicht mal im Ansatz. Da muss noch wesentlich mehr 
initialisiert werden. Schau dich mal im Internet nach Beispielen um.


Bekommst du im Putty nun ein Echo?


Gruß Oliver

von Tim S. (169)


Lesenswert?

Sorry der Code ist nicht vollständig kopiert worden.
In der main ist noch die Methode: USART_Print()
In dieser wird, so hoffe ich die gesamte Initilisierung vorgenommen.
Diese Methode ist aus einem Beispielcode.

von Oliver J. (skriptkiddy)


Lesenswert?

Tim S. schrieb:
> Sorry der Code ist nicht vollständig kopiert worden.
Wie soll man dir denn helfen, wenn du Informationen vorenthältst?

von Tim S. (169)


Angehängte Dateien:

Lesenswert?

Sorry.
Im Anhang ist nun die C-Datei mit den Initialisierungsroutinen und der 
Senderoutine.

von Oliver J. (skriptkiddy)


Lesenswert?

Tim S. schrieb:
> Sorry.
> Im Anhang ist nun die C-Datei mit den Initialisierungsroutinen und der
> Senderoutine.
Und wo in deiner Main ruft du diese Initialisierungen auf?

Die beiden Funktionen:
1
SetupClock();
2
SetupUSART();
musst du schon aufrufen, sonst wird es mit
1
USART_SendData(USART1, 1);
nichts.

Mach doch lieber:
1
USART_SendData(USART1, '*');
da sieht man wenigstens was im Putty.

Gruß Oliver

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]
  • [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.