cancel
Showing results for 
Search instead for 
Did you mean: 

Unable to display messages on Tera Term via USART1 on STM32F429I-Discovery

chachamaru
Associate II

Post edited by ST moderator to be inline with the community rules for the code sharing. In next time please use </> button to paste your code. Please read this post: How to insert source code.

Hello,

I’m using the STM32F429I-Discovery board and trying to display “Hello World” on Tera Term via USART1 (PA9, PA10).

I configured the project in STM32CubeIDE as follows:

  • USART1 → Mode: Asynchronous

  • TX: PA9, RX: PA10

  • Baudrate: 115200, 8N1, No Flow Control

  • Using the ST-LINK Virtual COM Port (USB connector CN1)

 

main.c

HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_USART1_UART_Init();

const char msg[] = "Hello World\r\n";
HAL_UART_Transmit(&huart1, (uint8_t*)msg, sizeof(msg)-1, HAL_MAX_DELAY);
while (1)
{
HAL_UART_Transmit(&huart1, (uint8_t*)"Hello Again\r\n", 13, HAL_MAX_DELAY);
HAL_Delay(1000);
}

However, nothing appears on Tera Term.
The “ST-LINK Virtual COM Port (COMxx)” is visible in the Windows Device Manager, and I’ve selected the correct COM port in Tera Term.
Also, when I checked the PA9 pin with an oscilloscope, there was no signal output.

Has anyone successfully used USART1 on the F429I-Discovery board?
Any advice or examples on how to correctly enable UART output on this board would be greatly appreciated

4 REPLIES 4
mƎALLEm
ST Employee

Hello,

Are you sure about the board reference you are using? Is it STM32F429I-Discovery or NUCLEO-F429 board?

When you are talking about USART1 (PA9, PA10) it seems you are using NUCLEO-F429 board.

So please clarify that point.

To give better visibility on the answered topics, please click on "Accept as Solution" on the reply which solved your issue or answered your question.

@mƎALLEm wrote:

When you are talking about USART1 (PA9, PA10) it seems you are using NUCLEO-F429 board.


The 32F429IDISCOVERY manual says they are the correct pins:

AndrewNeil_0-1762338646576.png

https://www.st.com/resource/en/user_manual/um1670-discovery-kit-with-stm32f429zi-mcu-stmicroelectronics.pdf#page=15

via: https://www.st.com/en/evaluation-tools/32f429idiscovery.html#documentation

 

@chachamaru are you sure that your board hasn't been reconfigured (SB11 and/or SB15)?

 

Also, are you sure it's actually a STM32F429I-DISC1, not the older STM32F429I-DISCO ?

A complex system that works is invariably found to have evolved from a simple system that worked.
A complex system designed from scratch never works and cannot be patched up to make it work.
Andrew Neil
Super User

@chachamaru wrote:

I checked the PA9 pin with an oscilloscope, there was no signal output.


What about PA10 - ie, is stuff transmitted by the PC arriving at the STM32?

(beware that terminal software may buffer stuff)

 


@chachamaru wrote:

Any ... examples on how to correctly enable UART output on this board 


Have you tried the ready-made examples in STM32CubeIDE ?

 

PS:

Are you sure that your code has actually been built and downloaded to the board?

Have you tried stepping it in the debugger?

 

PPS:

Looking at your code, it has the MX_GPIO_Init() and MX_USART1_UART_Init() as typically generated by CubeMX, but none of the accompanying comments typically generated; eg,

  /* 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 */
  MX_GPIO_Init();
  MX_SPI2_Init();
  MX_TIM6_Init();
  MX_USART2_UART_Init();
  MX_TIM16_Init();

  /* USER CODE BEGIN 2 */

 

In particular, you have none of the  /* USER CODE xxx */ comments - so all of your code will be deleted if you regenerate the project.

Could this be what's happened ... ?

A complex system that works is invariably found to have evolved from a simple system that worked.
A complex system designed from scratch never works and cannot be patched up to make it work.

@Andrew Neil wrote:

 

Also, are you sure it's actually a STM32F429I-DISC1, not the older STM32F429I-DISCO ?


Need to confirm first if the used board is a DISCO board and NOT a Nucleo board!

To give better visibility on the answered topics, please click on "Accept as Solution" on the reply which solved your issue or answered your question.