Skip to main content
YChen.51
Associate II
March 10, 2021
Question

STM32F429 USART baudrate max rate

  • March 10, 2021
  • 3 replies
  • 1470 views

Hi all

I used STM32F429 connected with LTE module by USART3,but I can only set the baudrate 230600. If I set 460800 or 921600,MCU can't transmit or receive data from LTE.

How can I set the baudrate over 230600??

void uart_init()
{
	UART3_Handler.Instance=USART3;					 
 
	//UART3_Handler.Init.BaudRate=921600;
	//UART3_Handler.Init.BaudRate=460800;
	UART3_Handler.Init.BaudRate=230400;
	UART3_Handler.Init.WordLength=UART_WORDLENGTH_8B; 
	UART3_Handler.Init.StopBits=UART_STOPBITS_1;	 
	UART3_Handler.Init.Parity=UART_PARITY_NONE;	
	UART3_Handler.Init.HwFlowCtl=UART_HWCONTROL_NONE; 
 
	UART3_Handler.Init.Mode=UART_MODE_TX_RX;		  
	HAL_UART_Init(&UART3_Handler);					 
}

Regards,

This topic has been closed for replies.

3 replies

Tesla DeLorean
Guru
March 10, 2021

Should be capable of several Mbaud.

You got transceivers or level shifters in the path?​

Tips, Buy me a coffee, or three.. PayPal Venmo (See Profile) Up vote any posts that you find helpful, it shows what's working..
YChen.51
YChen.51Author
Associate II
March 10, 2021

I am sure that the LTE module uart can reach 3000000

and no, I connect the STM32 board and LTE module directly.

Tesla DeLorean
Guru
March 10, 2021

Get a scope on the signals and check the timing.

Check HSE_VALUE is correct.

Many cellular modems use 1.8V signalling, no idea the make/model involved here, or specifics about board.

I'd back off on the slew-rate (SPEEDR) none of the previously mentioned speeds exceed 5 MHz, no need to put 100 MHz edges on things.

Check integrity, and ringing issues, use series resistors if necessary.

Check if you're getting Noise or Framing Errors, or Over/Underruns.

Tips, Buy me a coffee, or three.. PayPal Venmo (See Profile) Up vote any posts that you find helpful, it shows what's working..
Piranha
Principal III
March 10, 2021

Very probable that ST's buggy bloatware is incapable of keeping up with such speeds. Implement something sane like this:

https://github.com/MaJerle/stm32-usart-uart-dma-rx-tx