Skocz do zawartości

STM32 UART po wystąpieniu przerwania nie wraca do pętli while


rycho84

Pomocna odpowiedź

Witam,

przerabiam kurs programowania stm z tutejszego forum, btw. wyrazy uznania i podziękowania dla autorów, kawał dobrej roboty 👍,

jestem przy UARTcie, i tutaj pojawia się problem,

w HAL_UART_RxCpltCallback zostaje wywołana taka funkcja:

void read_line(UART_HandleTypeDef * handler, char * buffer, uint16_t buffer_size){
	HAL_StatusTypeDef status;
	char current_char;
	uint16_t char_counter = 0;
	while (char_counter < buffer_size -1){

		status = HAL_UART_Receive(handler, &current_char, 1,1);

		if(status == HAL_OK){
			if(current_char == '\r'|| current_char == '\n')
				if(char_counter == 0)continue;
				else break;
				*(buffer + char_counter++) = current_char;
		}
	}
	*(buffer + char_counter) = '\0';
}

ma ona zapisywać przychodzące dane, jednak na niej wszystko staje.

Wie ktoś może gdzie jest błąd?

Edytowano przez rycho84
Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.