cancel
Showing results for 
Search instead for 
Did you mean: 

STM32F2xx_HAL_Driver : error in the driver for uart

st239955_stm1
Associate II
Posted on March 25, 2016 at 11:22

Hi,

I use a CubeMx V1.0, version 4.14.0.

Firmware Package SMT32F2 family, V1.3.0 / 20-November-2015

In my opinion, there is an error in the file stm32fxx_hal_uart.c, in HAL_UART_Transmit function.

The problem is the blocking of the UART peripheral durting the transmission.

You should not lock full UART during transmission

 otherwise, we cannot receive correctly on interrupt during the transmission.

  

Without this fix, the performances of my application with the uart is pretty bad.

With this fix, all is working well.

Can the ST team update this driver ? Since it's a part of the drivers used by CubeMx, it's a very annoying problem.

Thanks :)

#stcubemx #uart #stm32 #hal
3 REPLIES 3
Walid FTITI_O
Senior II
Posted on March 25, 2016 at 11:32

Hi Stivy,

Could you mention which version of STM32F2Cube you are using and the version of the driver also.

-Hannibal-

st239955_stm1
Associate II
Posted on March 25, 2016 at 11:59

Hi Hannibal,

Thanks for your (very) fast reaction ! 

I put these information on my original post, as an edit.

I use a CubeMx V1.0, version 4.14.0.

Firmware Package SMT32F2 family, V1.3.0 / 20-November-2015

Walid FTITI_O
Senior II
Posted on March 25, 2016 at 17:12

Hi Stivy,

You are talking here about UART which is Asynchronous COM protocol that support only successive Transmit/receive process; you Should put the Receive_IT and then the Transmit_IT.

Otherwise, to fulfil your need you should use the USART driver which contains the TransmitReceive() function.

-Hannibal-