faustin Napisano Marzec 11, 2022 Udostępnij Napisano Marzec 11, 2022 witam i prosze o pomoc mam taki problem,ze napisałam kod , który ma za zadanie wyswietlić w terminalu "przykładowy tekst" program kompliuje sie dobrze i nie zwraca zadnych błedów ale nie wiem co zrobic aby zobaczyc ten "przykładowy tekst" oczywiscie patrzyłam na lekcje nr 4 w kursie na stml4 ale u mnie ten terminal wbudowany w stm32cube ide nie działa znaczy nie pojawia sie ten przykładowy tekst Cytuj Link do komentarza Share on other sites More sharing options...
faustin Marzec 11, 2022 Autor tematu Udostępnij Marzec 11, 2022 tutaj jest zawartosc poszczególnych plików : main.c #include "main.h" #include "functions.h" /* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ /* USER CODE END Includes */ /* Private typedef -----------------------------------------------------------*/ /* USER CODE BEGIN PTD */ /* USER CODE END PTD */ /* Private define ------------------------------------------------------------*/ /* USER CODE BEGIN PD */ /* USER CODE END PD */ /* Private macro -------------------------------------------------------------*/ /* USER CODE BEGIN PM */ /* USER CODE END PM */ /* Private variables ---------------------------------------------------------*/ /* USER CODE BEGIN PV */ /* USER CODE END PV */ /* Private function prototypes -----------------------------------------------*/ void SystemClock_Config(void); /* USER CODE BEGIN PFP */ /* USER CODE END PFP */ /* Private user code ---------------------------------------------------------*/ /* USER CODE BEGIN 0 */ /* USER CODE END 0 */ /** * @brief The application entry point. * @retval int */ int main(void) { write("tekst przykładowy"); /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MCU Configuration--------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config(); /* USER CODE BEGIN SysInit */ /* USER CODE END SysInit */ /* Initialize all configured peripherals */ /* USER CODE BEGIN 2 */ /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */ return 0; } a tutaj plik functions.c /* * functions.c * * Created on: Mar 11, 2022 * Author: Laptop */ #include <functions.h> #include <stdio.h> void write (char *text) { printf("%s", text); } a tutaj functions.h /* * functions.h * * Created on: Mar 11, 2022 * Author: Laptop */ void write(char *text); Cytuj Link do komentarza Share on other sites More sharing options...
_LM_ Marzec 11, 2022 Udostępnij Marzec 11, 2022 Zdaje się że powinnaś wysłać po inicie a nie przed. Cytuj Link do komentarza Share on other sites More sharing options...
faustin Marzec 11, 2022 Autor tematu Udostępnij Marzec 11, 2022 Po obicie czyli w którym dokładnie miejscu Cytuj Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Produkcja i montaż PCB - wybierz sprawdzone PCBWay! • Darmowe płytki dla studentów i projektów non-profit • Tylko 5$ za 10 prototypów PCB w 24 godziny • Usługa projektowania PCB na zlecenie • Montaż PCB od 30$ + bezpłatna dostawa i szablony • Darmowe narzędzie do podglądu plików Gerber Zobacz również » Film z fabryki PCBWay
_LM_ Marzec 11, 2022 Udostępnij Marzec 11, 2022 Wpierw musi być funkcja hal init żeby mikrokontroler mógł skonfigurować peryferia. Przejrzyj dokładnie lekcję kursu Cytuj Link do komentarza Share on other sites More sharing options...
faustin Marzec 11, 2022 Autor tematu Udostępnij Marzec 11, 2022 Jakie ustwienia tutaj pownnam zaznaczyc? Cytuj Link do komentarza Share on other sites More sharing options...
etet100 Marzec 12, 2022 Udostępnij Marzec 12, 2022 Z tego konkretnie nie wynika jak i czy w ogóle zainicjalizowany jest port szeregowy. Odnoszę wręcz wrażenie, że w ogóle nie jest. Swój kod należy umieszczać w sekcjach USER CODE, czyli przykładowo tu: /* USER CODE BEGIN 1 */ tu możemy wpisać własny kod /* USER CODE END 1 */ W przeciwnym razie kod może zostać nadpisany przez automatyczny generator kodu. W tej sytuacji zdecydowanie musi to być po inicjalizacji HAL i zegarów (SystemClock_Config()) czyli gdzieś w USER CODE 2 lub w pętli while. Dodatkowo pisanie do portu szeregowego zakłada użycie pewnej "magii" polegającej na przejęciu funkcji _write (opisane w tym poradniku). Na początek lepiej zrobić to bardziej niskopoziomowo i użyć przykładowo: const char message[] = "Hello world!\r\n"; HAL_UART_Transmit(&huart, (uint8_t*)message, strlen(message), HAL_MAX_DELAY); No ale to znowu pod warunkiem, że ten port jest uruchomiony. A tu nic takiego nie widać. Cytuj Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Dołącz do dyskusji, napisz odpowiedź!
Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!