Forum: Mikrocontroller und Digitale Elektronik STM32F103C8T6 mit Arduino Serial funktioniert nicht


von L. Beier (Gast)


Lesenswert?

Ich habe alles für den MCU eingerichtet bei Arduino und SPI und I2C 
funktionierten. Als ich jetzt aber dieses Programm getestet habe:
1
void setup() {
2
  Serial.begin(9600);
3
}
4
5
void loop() {
6
  Serial.write("Test");
7
  delay(10);       
8
}
konnte ich im Gegensatz zu meinem Arduino Nano nichts mit dem Logic 
Analyzer an PA9 messen.

Muss man bei dem Modul eine andere Library benutzen oder warum 
funktioniert das nicht?

von Joachim B. (jar)


Lesenswert?

versuche mal
Serial.print("Test");
(besser Serial.print(F("Test"));)

oder Serial.print("Test\n");
oder Serial.print("Test\r\n");

ggffs nicht richtig eingestellt? flush()?

Beitrag #5114900 wurde von einem Moderator gelöscht.
von L. Beier (Gast)


Lesenswert?

Genervt schrieb im Beitrag #5114900:
> Schmeiß aurduino weg

Danke das hat geholfen

von yesitsme (Gast)


Lesenswert?

Versuch mal Serial1, Serial2 oder so

Ich denke das Serial über USB geht.

von bianchifan (Gast)


Lesenswert?

L. Beier schrieb:
> Ich habe alles für den MCU eingerichtet bei Arduino und SPI und I2C
> funktionierten.
Was heißt alles?
Ich habe keine Glaskugel..

ICH benutze Roger Clark's STM32DUINO als Arduino Aufsatz, DORT wird mit

> setup() {
>   Serial.begin(9600);
> }

der serielle USB-Transfer gestartet(PA12).
Zur Ausgabe finden die "print"-Methoden Anwendung.

Standard-Beispiel:

void setup() {
 Serial.begin(115200); // init Serial USB
 while(!Serial.isConnected()){};  // wait on USB is up and running
 Serial.println("Hello from USB Serial !!");
 }

IIRC muss zur Ausgabe auf PA9 Serial1 gestartet werden, meine Hand lege 
ich dafür aber nicht ins Feuer.
Doku lesen bzw. WIKI von STM32Duino

von L. Beier (Gast)


Lesenswert?

Ne hat alles nicht geholfen. Ich glaube ehr, dass mein Board kaputt ist. 
Ich probiere jetzt aber USART nochmal mit CooCox.

von L. Beier (Gast)


Lesenswert?

Komisch jetzt funktioniert es.

von L. Beier (Gast)


Lesenswert?

USART2 funktioniert trotzdem noch nicht.
1
...
2
3
void RCC_Init(void)
4
{
5
    // Route and enable clocks for low and high speed bus
6
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE);
7
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);
8
}
9
10
void InitUart1(void)
11
{
12
    // Create Structs
13
    GPIO_InitTypeDef GPIO_InitStructure;
14
    USART_InitTypeDef USART_InitStructure;
15
    USART_ClockInitTypeDef USART_ClockInitStructure;
16
17
    // USART1 RX-Pin initialize
18
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
19
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
20
    GPIO_Init(GPIOA, &GPIO_InitStructure);
21
22
    // USART1 TX-Pin initialize
23
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
24
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
25
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
26
    GPIO_Init(GPIOA, &GPIO_InitStructure);
27
28
    // USART and clock initialize
29
    USART_ClockStructInit(&USART_ClockInitStructure);
30
    USART_ClockInit(USART1, &USART_ClockInitStructure);
31
32
    USART_InitStructure.USART_BaudRate = 9600;
33
    USART_InitStructure.USART_WordLength = USART_WordLength_8b;
34
    USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
35
    USART_InitStructure.USART_Parity = USART_Parity_No;
36
    USART_InitStructure.USART_StopBits = USART_StopBits_1;
37
    USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
38
39
    USART_Init(USART1, &USART_InitStructure);
40
    USART_Cmd(USART1, ENABLE);
41
}
42
43
void InitUart2(void)
44
{
45
46
    // Initialize Structs
47
    GPIO_InitTypeDef GPIO_InitStructure;
48
    USART_InitTypeDef USART_InitStructure;
49
    USART_ClockInitTypeDef USART_ClockInitStructure;
50
51
    // USART1 RX-Pin initialize PA3
52
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
53
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
54
    GPIO_Init(GPIOA, &GPIO_InitStructure);
55
56
    // USART1 TX-Pin initialize PA2
57
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
58
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
59
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
60
    GPIO_Init(GPIOA, &GPIO_InitStructure);
61
62
    /* Remap USART, as USART2 is used as alternate pins on PD5/6*/
63
    GPIO_PinRemapConfig(GPIO_Remap_USART2, ENABLE);
64
65
    // USART initialize
66
    USART_ClockStructInit(&USART_ClockInitStructure);
67
    USART_ClockInit(USART2, &USART_ClockInitStructure);
68
69
    USART_InitStructure.USART_BaudRate = 9600;
70
    USART_InitStructure.USART_WordLength = USART_WordLength_8b;
71
    USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
72
    USART_InitStructure.USART_Parity = USART_Parity_No;
73
    USART_InitStructure.USART_StopBits = USART_StopBits_1;
74
    USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
75
76
    USART_Init(USART2, &USART_InitStructure);
77
    USART_Cmd(USART2, ENABLE);
78
}
79
80
81
void USART1_SendString(char* data)
82
{
83
    while (*data)
84
    {
85
        USART_SendData(USART1, (uint16_t) *data);
86
        while(USART_GetFlagStatus(USART1, USART_FLAG_TC)==RESET);
87
        data++;
88
    }
89
}
90
91
void USART2_SendString(char* data)
92
{
93
    while (*data)
94
    {
95
        USART_SendData(USART2, (uint16_t) *data);
96
        while(USART_GetFlagStatus(USART2, USART_FLAG_TC)==RESET);
97
        data++;
98
    }
99
}
100
101
int main(void)
102
{
103
    SystemInit();
104
    RCC_Init();
105
    InitUart1();
106
    InitUart2();
107
108
    while(1)
109
    {
110
      delay_nus(100);
111
112
      USART2_SendString("Second String\n\r");
113
      while(USART_GetFlagStatus(USART2, USART_FLAG_TC) == RESET);
114
115
        delay_nus(100);
116
117
        while(USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);
118
        USART1_SendString("First String\n");
119
    }
120
}

Ich kann nur Daten bei USART1 empfangen

von L. Beier (Gast)


Lesenswert?

Hab ich schon getestet und nur USART1 funktioniert wenn ich CooCox 
benutze.

von L. Beier (Gast)


Lesenswert?

yesitsme schrieb:
> Versuch mal Serial1, Serial2 oder so
>
> Ich denke das Serial über USB geht.

Antwort hierfür

von Markus (Gast)


Lesenswert?

>Komisch jetzt funktioniert es.

Diese Aussage kommt in Entwicklungsabteilungen häufig vor :-)

Du könntest noch das STM32GENERIC-Framework ausprobieren, vielleicht 
geht's ja damit.
Obwohl das Framework von Roger Clark eigentlich ziemlich ausgreift ist 
..

von Stefan F. (Gast)


Lesenswert?

> Ich denke das Serial über USB geht.

So ist es.

von L. Beier (Gast)


Lesenswert?

Markus schrieb:
>>Komisch jetzt funktioniert es.
>
> Diese Aussage kommt in Entwicklungsabteilungen häufig vor :-)
>
> Du könntest noch das STM32GENERIC-Framework ausprobieren, vielleicht
> geht's ja damit.
> Obwohl das Framework von Roger Clark eigentlich ziemlich ausgreift ist
> ..

Dieser Code funktioniert jetzt:
1
#include "stm32f10x_gpio.h"
2
#include "stm32f10x_rcc.h"
3
#include "stm32f10x_usart.h"
4
#include "stm32f10x_tim.h"
5
#include "misc.h"
6
7
GPIO_InitTypeDef GPIO_InitStructure;
8
TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
9
USART_InitTypeDef USART_InitStructure;
10
11
#define READ_BUFFER_SIZE 20
12
13
volatile char read_buffer[READ_BUFFER_SIZE];
14
volatile char read_buffer_single = 0;
15
volatile char string_complete = 0;
16
volatile int uart_str_count = 0;
17
18
void nvic_initialisierung(uint16_t IRQ)
19
{
20
       NVIC_InitTypeDef NVIC_InitStructure; //create NVIC structure
21
         NVIC_InitStructure.NVIC_IRQChannel = IRQ;
22
         NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
23
         NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
24
         NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
25
         NVIC_Init(&NVIC_InitStructure);
26
}
27
28
void UARTSend(const unsigned char *pucBuffer)
29
{
30
31
    while(*pucBuffer)
32
    {
33
        USART_SendData(USART2, (uint16_t) *pucBuffer++);
34
        while(USART_GetFlagStatus(USART2, USART_FLAG_TC) == RESET)
35
        {
36
        }
37
    }
38
}
39
40
void USART_Configuration(void)
41
{
42
43
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
44
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);
45
46
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
47
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
48
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
49
    GPIO_Init(GPIOA, &GPIO_InitStructure);
50
51
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
52
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
53
    GPIO_Init(GPIOA, &GPIO_InitStructure);
54
55
56
  USART_InitStructure.USART_BaudRate = 19200;
57
  USART_InitStructure.USART_WordLength = USART_WordLength_8b;
58
  USART_InitStructure.USART_StopBits = USART_StopBits_1;
59
  USART_InitStructure.USART_Parity = USART_Parity_No;
60
  USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
61
  USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
62
63
  USART_Init(USART2, &USART_InitStructure);
64
65
  USART_ITConfig(USART2, USART_IT_RXNE, ENABLE);
66
67
  USART_Cmd(USART2, ENABLE);
68
}
69
70
int main(void)
71
{
72
73
    SystemInit();
74
    nvic_initialisierung(USART2_IRQn);
75
    USART_Configuration();
76
77
    while(1){
78
      UARTSend("test");
79
    }
80
}

von F. F. (foldi)


Lesenswert?

Known Issues
On most clones, the chip's analog circuitry is supplied by the same 
power track as the digital circuitry, meaning that sampling the ADC in 
close succession with e.g. SPI communication is known to cause 
interference. This is not a problem for most use cases, and can usually 
be solved by careful timing in software. It is worth noting that most 
Arduino boards (e.g. Uno, Nano) have the same "problem".

Kenne das so nicht und habe aus Interesse einmal gegoogelt.
Kann ja unter Umständen auch da zu Störungen führen.

Nur mal so eine Idee.

von L. Beier (Gast)


Lesenswert?

Fehlt nur noch der Code für I2C und SPI...

von Markus (Gast)


Lesenswert?

Also ist das Problem jetzt gelöst oder nicht?

Seriel.begin geht auf die USB-Schnittstelle.

Dort gibt es zwei Dinge zu beachten, falls es sich um ein BluePill-Board 
handelt
1. Ist ein Widerstand für die USB-Schnittstelle meist falsch bestückt 
und muss gepached werden.
2. Der USB-Anschluss ist an dem Board mechanisch ziemlich labil. Es 
passiert schnell, dass der Stecker nicht mehr richtig kontaktiert und 
ein Wackelkontakt auftritt.

von L. Beier (Gast)


Lesenswert?

Markus schrieb:
> Also ist das Problem jetzt gelöst oder nicht?
>
> Seriel.begin geht auf die USB-Schnittstelle.
>
> Dort gibt es zwei Dinge zu beachten, falls es sich um ein BluePill-Board
> handelt
> 1. Ist ein Widerstand für die USB-Schnittstelle meist falsch bestückt
> und muss gepached werden.
> 2. Der USB-Anschluss ist an dem Board mechanisch ziemlich labil. Es
> passiert schnell, dass der Stecker nicht mehr richtig kontaktiert und
> ein Wackelkontakt auftritt.

Mein Board hat keinen USB Anschluss und Serial1 funktioniert auch nicht 
mit Arduino.
Es wäre für mich sehr viel einfacher, wenn UART mit Arduino 
funktionieren würde, aber anscheinend geht das nicht. Jedenfalls habe 
ich alle Vorschläge ausprobiert.

von Markus (Gast)


Lesenswert?

Die Schnittstelle funktioniert mit ziemlicher Sicherheit.
https://github.com/rogerclarkmelbourne/Arduino_STM32/blob/master/STM32F1/cores/maple/HardwareSerial.cpp
Die Frage ist nur, wie auswählen. Beim STM32GENERIC kann man im 
tools-Menue bestimmte Peripherie ein- bzw. ausschalten.
Am schnellsten wäre es, wenn Du diese Frage direkt im stm32duino-Forum 
stellst.

von bianchifan (Gast)


Lesenswert?

L. Beier schrieb:
> Mein Board hat keinen USB Anschluss und Serial1 funktioniert auch nicht
> mit Arduino.

Dann hol Dir irgendein Entwicklungsboard, die haben alle USB.
Preislich am günstigsten sind die "BLUEPILL"s vom Ali, so ca. 1,80$.
Für USB muss da aber ein Bootloader drauf, entweder via Serial-USB 
Adapter oder STLINK.
Null Problemo sollte ein Maple Mini Klon bereiten, dort ist aber bereits 
ein CBT6 drauf ;).
Gibt's beim Ali für ca. 3$ plus Cents.

von bianchifan (Gast)


Lesenswert?

BLUEPILL = Minimum System Development Board

Beitrag #5115194 wurde von einem Moderator gelöscht.
von Markus (Gast)


Angehängte Dateien:

Lesenswert?

Also, ich habe es mal mit dem Arduino STM32GENERIC Framework 
ausprobiert, da ich das von Roger Clark momentan nicht installiert habe.

Es funktioniert mit einem USB-Serial Adapter an PA9/PA10 einwandfrei.

Einstellungen in "Tools" siehe Screenshot.
1
void setup() {
2
  // initialize serial communication at 9600 bits per second:
3
  Serial.begin(115200);
4
}
5
6
// the loop routine runs over and over again forever:
7
void loop() {
8
  // read the input on analog pin 0:
9
  int sensorValue = analogRead(PA0);
10
  // print out the value you read:
11
  Serial.println(sensorValue);
12
  delay(100);        // delay in between reads for stability
13
}

von L. Beier (Gast)


Lesenswert?

Markus schrieb:
> Also, ich habe es mal mit dem Arduino STM32GENERIC Framework
> ausprobiert, da ich das von Roger Clark momentan nicht installiert habe.
>

Dann liegt es wohl an dem Board. Ich habe ein BLUEPILL und benutze 
Serial1.

von DraconiX (Gast)


Lesenswert?

L. Beier schrieb:
> Mein Board hat keinen USB Anschluss

L. Beier schrieb:
> Ich habe ein BLUEPILL

Höö?! Das Bluepill hat doch aber den USB rausgeführt?

Und dieser ist halt Serial.beginn....

Im Grunde wiedersprichst du dich in jedem zweiten Post... Einmal sagst 
du das serial1 nicht funktioniert, dann funktioniert es wieder. USB hast 
du keins, aber USB hat dein Board...

WIE ist der aktuelle Stand? WELCHE UART des F103 willst du nun 
eigentlich nutzen? WAS funktioniert und WAS funktioniert nicht?

von W.S. (Gast)


Lesenswert?

L. Beier schrieb:
> Dann liegt es wohl an dem Board.

Wohl eher nicht.

Es gibt für dich nur genau 2 Wege:

a) du beginnst, dich mit der eigentlichen Materie zu befassen, bis du in 
der Lage bist, aus eigener Kraft und eigenem Verstehen die vorliegende 
Hardware sinnvoll zu benutzen.

b) du bleibst bei der Arduino-Denkweise und bist darauf angewiesen, 
genau das und nur das zu benutzen, was irgend jemand für eine bestimmte 
Hardware und eine bestimmte Software-Konfiguration zuvor gebrauchsfertig 
dir vorgegeben hat.

Die Entscheidung liegt bei dir - aber du solltest berücksichtigen, daß 
es im Falle von b) eine nicht mehr überbrückbare Lücke gibt zwischen dir 
und all denjenigen, die solche Chips wie die STM32Fxxx und Konsorten 
direkt und selbst und ohne Arduino benutzen. Und eine noch viel größere 
Lücke besteht zu Leuten wie mir, der ich (aus guten Gründen) nicht 
einmal die diversen Hersteller-Krücken wie Cube, Dave, Cmsis benutze, 
sondern mein Zeug mit eigenem Portfolio mache.

In beiden Fällen führt der Versuch, dir Ratschläge quasi vom anderen 
Ufer der Lücke zu geben, mit Regelmäßigkeit zu gegenseitigem Frust.

W.S.

von L. Beier (Gast)


Lesenswert?

DraconiX schrieb:
> L. Beier schrieb:
> Mein Board hat keinen USB Anschluss
>
> L. Beier schrieb:
> Ich habe ein BLUEPILL
>
> Höö?! Das Bluepill hat doch aber den USB rausgeführt?
> Und dieser ist halt Serial.beginn....
>
> Im Grunde wiedersprichst du dich in jedem zweiten Post... Einmal sagst
> du das serial1 nicht funktioniert, dann funktioniert es wieder. USB hast
> du keins, aber USB hat dein Board...
> WIE ist der aktuelle Stand? WELCHE UART des F103 willst du nun
> eigentlich nutzen? WAS funktioniert und WAS funktioniert nicht?

Zusammengefasst: Ich möchte UART2 (Serial1) nutzen, kein UART Interface 
funktioniert mit Arduino und diversen Code Variationen, jedoch 
funktionieren alle UARTs wenn ich statt Arduino CooCox benutze. Daher 
bin ich gerade dabei den Code, den ich für Arduino geschrieben habe in C 
mit CooCox neu zu schreiben

von L. Beier (Gast)


Lesenswert?

Mit USB habe mich mich falsch ausgedrückt. Ich meinte, dass es nicht 
über USB angeschlossen ist und UART1 bei anderen Tests nicht benutzt 
wurde.

von DraconiX (Gast)


Lesenswert?

L. Beier schrieb:
> Zusammengefasst: Ich möchte UART2 (Serial1) nutzen, kein UART Interface
> funktioniert mit Arduino und diversen Code Variationen, jedoch
> funktionieren alle UARTs wenn ich statt Arduino CooCox benutze.

Ahh okay. Jetzt begreife ich es!

L. Beier schrieb:
> Daher bin ich gerade dabei den Code, den ich für Arduino geschrieben
> habe in C mit CooCox neu zu schreiben

Gute... Sehr gute Entscheidung... Du wirst sehen das es sicherlich hart 
und schwer wird. Aber die Lernkurve, gerade beim Cortex, wird hoch und 
steil sein! Viel Erfolg, und bei Fragen gerne wieder fragen. ? Ist das 
dein Einstieg in die 32Bit-Welt?!

von Stefan F. (Gast)


Lesenswert?

Schau auf meine Notizen-Seite: http://stefanfrings.de/stm32/index.html

Dort verlinke ich auf die richtige Doku im Arduino Kapitel: 
https://github.com/rogerclarkmelbourne/Arduino_STM32

Und da steht im Wiki:

"SerialUSB on Maple builds has now been changed to Serial. Serial1 is 
Hardware serial 1, Serial2 is Hardware serial 2 etc"

Demnach muss es damit funktionieren. Vielleicht hast du das falsche 
Arduino Plugin verwendet.

von Markus (Gast)


Angehängte Dateien:

Lesenswert?

L.Beier
>Zusammengefasst: Ich möchte UART2 (Serial1) nutzen, kein UART >Interface
>funktioniert mit Arduino und diversen Code Variationen, jedoch
>funktionieren alle UARTs wenn ich statt Arduino CooCox benutze. Daher
>bin ich gerade dabei den Code, den ich für Arduino geschrieben habe >in C mit 
CooCox neu zu schreiben

So, gerade mal mit Arduino STM32Generic probiert:
1
void setup() {
2
Serial.begin(115200);
3
Serial2.begin(115200);
4
5
}
6
7
int Counter=0;
8
void loop() 
9
{
10
  Serial.println(Counter);  
11
  Serial2.println(Counter++);
12
  delay(200);
13
14
}

Es funktioniert einwandfrei. Das Bild oben ist von PA2 also TX2.

Hast Du STM32Generic probiert?

von L. Beier (Gast)


Lesenswert?

Markus schrieb:
> Es funktioniert einwandfrei. Das Bild oben ist von PA2 also TX2.
>
> Hast Du STM32Generic probiert?

Das ist ja ein ding! Ich habe bislang immer das Generic STM32F103C 
series von rogerclarkmelbourne benutzt und jetzt mit dem stm32generic 
von danieleff funktionierts!

von Markus (Gast)


Lesenswert?

Gratulation :-)
Viel Spaß beim weiterentwickeln ;-)
Schreib mal, ob der Rest klappt ( SPI, I2C usw ).

von F. F. (foldi)


Lesenswert?

Bei Arduino funktioniert so einiges nicht mehr.
Die alten Uno Boards, die ich noch habe, funktionieren nicht mehr. Die 
Nanos alle.
CH... funktionieren.
Da sind 8U2 drauf und die wollen nicht mehr.

von Markus (Gast)


Lesenswert?

Was heißt funktioniert nicht mehr?
Vielleicht musst Du eine ältere IDE runterladen. Man kann ja mehrere 
parallel haben.

von Stefan F. (Gast)


Lesenswert?

Klingt für mich eher nach einem Treiber Problem.
Die seriellen Ports kann man relativ einfach mit LED's an RxD und TxD 
testen.

von Markus (Gast)


Lesenswert?

Auf jeden Fall ist Arduino schuld:
https://www.youtube.com/watch?v=nn2FB1P_Mn8

von L. Beier (Gast)


Lesenswert?

Jetzt nachdem ich Arduino STM32 neu installiert habe funktioniert 
anscheinend alles wieder und ich habe statt Serial2 für USART2 Serial1 
benutzt, da ich in einem anderen Forum gelesen habe, dass die so benannt 
würden.
Trotzdem danke für die ganze Hilfe und ich werde jetzt in meinen 
nächsten Projekten direkt alles mal mit CooCox versuchen, wenn ich nicht 
einen bereits fertigen Code umschreiben müsste.

von L. Beier (Gast)


Lesenswert?

I2C und SPI funktionieren auch alle jetzt

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.