cancel
Showing results for 
Search instead for 
Did you mean: 

STM32F429 USART baudrate max rate

YChen.51
Associate II

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,

4 REPLIES 4

Should be capable of several Mbaud.

You got transceivers or level shifters in the path?​

Tips, buy me a coffee, or three.. PayPal Venmo Up vote any posts that you find helpful, it shows what's working..
YChen.51
Associate II

I am sure that the LTE module uart can reach 3000000

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

Piranha
Chief II

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

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 Up vote any posts that you find helpful, it shows what's working..