Skocz do zawartości

aldenham

Użytkownicy
  • Zawartość

    2
  • Rejestracja

  • Ostatnio

Reputacja

0 Neutralna

O aldenham

  • Ranga
    1/10
  1. @Elvis Dzięki za porady. Z tym \0 oczywiście byłem świadomy, tylko niezbyt wyraźnie napisałem, o co mi chodzi. Stwierdziłem, że trochę szkoda zajmować się rozwiązaniem, z którego w przyszłości i tak nie będę korzystał, bo przeniosę pewnie kod na DMA
  2. Witam Niestety również mam problem z zadaniem #5.2. Na pewno mam zbyt małą wiedze nt. programowania w C, a szczególnie nt. STM32, ale dotychczas wszystkie zadania wykonywałem bez problemu. 1) Po pierwsze nurtuje mnie jedna rzecz - w instrukcji HAL w opisie funkcji HAL_UART_Receive podane są takie instrukcje. (UART_HandleTypeDef * huart, uint8_t * pData, uint16_t Size, uint32_t Timeout) Wychodzi na to, że w przykładzie zmienna value musi być typu uint8_t i tak rzeczywiście jest. Zastanawia mnie, jak to jest, że w instrukcji switch oczekiwany jest znak (char), a w funkcji deklarowany jest int (uint8_t). Czy jest to rzutowanie? To w takim razie dlaczego jeśli próbuję odczytać z value łańcuch znaków, kompilator pokazuje type mismatch jeszcze przed próbą kompilacji? Zastosowanie strcmp(value, moja_zmienna_tablicowa_typu_char) również jest dla kompilatora błędna, bo traktuje value jako uint8_t. Kod napisany przez kolegę Wierczewskiego nie powinien się skompilować (nie sprawdzałem), bo zadeklarował value jako char, podczas gdy HAL_UART_Receive oczekiwało w tym miejscu zmiennej typu uint8_t. 2) To jak w końcu napisać tę funkcję tak, żeby zadziałała? Czy ilość danych do odbioru (uint16_t Size w dokumentacji HAL) powinna być ustawiona na 3 (lub 4) zamiast 1, jeśli chcę odebrać łańcuch o długości 4 znaków? Nie oczekuję gotowego rozwiązania, ale liczę na "ciekawą" podpowiedź
×
×
  • Utwórz nowe...