Skocz do zawartości

Terminal w STMCubeIDE STM32L4


faustin

Pomocna odpowiedź

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

Link do komentarza
Share on other sites

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);

 

ppp.PNG

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

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

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ć.

Link do komentarza
Share on other sites

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!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • 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.