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 :)
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
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.
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?
#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++); } }
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
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.
Tim S. schrieb: > Sorry der Code ist nicht vollständig kopiert worden. Wie soll man dir denn helfen, wenn du Informationen vorenthältst?
Sorry. Im Anhang ist nun die C-Datei mit den Initialisierungsroutinen und der Senderoutine.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.