Hallo Zusammen, derzeit hänge ich bei der Implementation meiner UART Receive Funktion auf meinem STM32F407. Eigentlich sollte es keine große Sache sein, nur irgendwie kann ich nur das erste übertragene Zeichen empfangen. Sprich es wid nur das erste übertragene Zeichen in den Speicher übertragen. Zu meinem Code: Die Hardware Config ist mit CubeMX erstellt. Alles passt auch soweit. Als IDE nutze ich Eclipse. Die Übertragung soll mittels Interrupt geschehen (HAL_UART_Receive_IT(...)). Ich habe sowohl eigenen Code als auch externen versucht, welcher auf dem Chip laufen sollte. In beiden Fällen wird immer nur der erste char den ich per hterm schicke empfangen. Auch verschiedene Baudraten hab ich versucht. Zu meinem Code: Er basiert auf den HAL Treibern. Builden und Flashen funktioniert auch problemlos. Der Code sieht wie folgt aus: /* Private variables ---------------------------------------------------------*/ char UART3_Data; char UART_Buffer[32]; char i = 0; .... HAL_UART_Receive_IT(&huart3, (uint8_t*) &UART3_Data, 1); while (1){ } .... /* USER CODE BEGIN 4 */ void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart){ char n = 0; char UART_Aux[32]; if(huart->Instance == USART3){ if(UART3_Data != '\n'){ UART_Buffer[i] = UART3_Data; i++; } else{ n = sprintf(UART_Aux, "%s", UART_Buffer); HAL_UART_Transmit(&huart3, (uint8_t*) &UART_Aux, n, 1000); i = 0; } HAL_UART_Receive_IT(&huart3, (uint8_t*) &UART3_Data, 1); } } } Es wäre super, wenn ihr mir eine Ratschlag geben könntet. Weil ich stehe dertzeit vollkommen auf dem Schlauch. Viele Grüße, Simon
Moin, ich gehe davon aus das Du von PC nicht jedes mal das Zeilenende mitsendest. So habe ich das gemacht: Beitrag "Re: STM32 Uart implementierung findet die defines nicht?!" Bitte diesen und den nächsten Beitrag lesen.
Super! Vielen Dank, genau das war das Problem. Ich ging dummerweise davon aus, dass hterm das Zeilenende automatisch mitsendet. Jedenfalls läufts 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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.