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.