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
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);
faustin Marzec 11, 2022 Autor tematu Udostępnij Marzec 11, 2022 Po obicie czyli w którym dokładnie miejscu
_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
faustin Marzec 11, 2022 Autor tematu Udostępnij Marzec 11, 2022 Jakie ustwienia tutaj pownnam zaznaczyc?
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ć.
Pomocna odpowiedź
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ę »