AnsweredAssumed Answered

Possible HAL F429 UART TX Bug

Question asked by narsutis.dainius on Jul 31, 2017
Latest reply on Aug 1, 2017 by narsutis.dainius

Hi, I am working on my project which requires to send some data over UART.

 

I have F429ZI Nucleo board with a UART2 configured (see uart2_config image). The UART2 has Interrupts enabled so I can use the HAL_UART_Transmit_IT function.

 

I am passing an array of uint8_t values. Only 4 bytes. The bytes are getting transmitted via the TX pin as expected, but only 7 bits per byte are transmitted. (see tx_8_bits_no_parity image).

 

So I got into the F429xx datasheet (http://www.st.com/content/ccc/resource/technical/document/reference_manual/3d/6d/5a/66/b4/99/40/d4/DM00031020.pdf/files/… ) and on page 994 the Table 146 clearly states that when the bits M (length = 8bits) and PCE (parity = None) are reset, the UART frame will be: Start Bit, 8 data bits, Stop Bit.

 

Why is MCU sending only 7 bits when no parity is enabled? So I decided to enable parity in CubeMX and set it to Even.

 

However, the parity bit just takes up one of the 8 bits, making the data only 6 bits! (see tx_8_bits_even_parity image).

The same table 146, clearly states that the MCU should be sending 7 Data bits and not 6.

 

How can this be? Am I missing something? I am only trying to send 8 bits of data (0x00 - 0xFF) without parity.

 

Any advise would be appreciated.

 

Thanks.

Outcomes