cancel
Showing results for 
Search instead for 
Did you mean: 

how to Clear RxBuffer in HAL_UART_Transmit_IT

anuj
Associate II
Posted on September 01, 2016 at 00:12

Hi,

I have been wokring on STM32F030  Discovery.I have initialized UART. Whenever I send data from my PC to STM32. It adds the data into previous data. For example if I send ''123'' and next time I send ''456''. The whole string would be like ''123456'', even though they both are different strings. How to clear the buffer? I tried clearing the buffer, but it clear everytime the UART interrupt occurs and clear everything and shows nothing.

Please help?

Here is my code

&sharpdefine BUFFER_SIZE 9

void USART2_IRQHandler(void)

{

   HAL_UART_IRQHandler(&huart2);

   uint8_t i;

   HAL_UART_Receive_IT(huart,(uint8_t*)ReceivedData,BUFFER_SIZE);

  for (i=0;i<BUFFER_SIZE;i++)  

{

 ReceivedData[i]=0;      //clear Rx_Buffer before receiving new data

        }

}

#uart #!stm32 #stm32 #stcubemx #hal
1 REPLY 1
sherman
Associate II
Posted on September 01, 2016 at 13:44

Hello mattoo.anuj,

Can you post your main.c code?  Have you tried clearing the buffer from the ''HAL_UART_RxCpltCallback()'' in main.c to process the string once the UART Rx transfer is complete?  I am sure that is not the most efficient way, but can help move you to functioning code.