Device is: STM32 Primer2
OS: version 3.8
We tested 30 devices.
 ~65% is working corectly (without problem).
And near 35 % devices works with present problem.
USART2 works via NVIC (using Rx, Tx interupt ), but I check the same situation with disable interupt and software checking Rx,Tx flags.
And initiualization code:
void USART2_Config( void )
    {
    NVIC_InitTypeDef NVIC_InitStructure;
    USART_InitTypeDef USART_InitStructure;
    GPIO_InitTypeDef GPIO_InitStructure;
      /* Enable PORTA clocks */
     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, DISABLE); 
     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE);
      /* Enable USART2 clocks */
     RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);
      /* Configure USART2 Tx (PA.2) as alternate function push-pull */
      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
      GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
      GPIO_Init(GPIOA, &GPIO_InitStructure);
    /* Configure USART2 Rx (PA.3) as input push-up */
      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
      GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;//IN_FLOATING;
      GPIO_Init(GPIOA, &GPIO_InitStructure);
     
      /* USART2 configuration ------------------------------------------------------*/
      /* USART2 configured as follow:
            - BaudRate = 9600 baud 
            - Word Length = 8 Bits
            - One Stop Bit
            - No pbar_dataty
            - Hardware flow control disabled (RTS and CTS signals)
            - Receive and transmit enabled
            - USART Clock disabled
            - USART CPOL: Clock is active low
            - USART CPHA: Data is captured on the second edge
            - USART LastBit: The clock pulse of the last data bit is not output to
                             the SCLK pin
      */
      USART_InitStructure.USART_BaudRate = 9600; // 
      USART_InitStructure.USART_WordLength = USART_WordLength_8b;
      USART_InitStructure.USART_StopBits = USART_StopBits_1;
      USART_InitStructure.USART_Pbar_dataty = USART_Pbar_dataty_No;
      USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
      USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
      USART_Init(USART2, &USART_InitStructure);
    NVIC_PriorityGroupConfig( NVIC_PriorityGroup_1 );
    NVIC_InitStructure.NVIC_IRQChannel                    = USART2_IRQChannel;
    NVIC_InitStructure.NVIC_IRQChannelSubPriority         = 2;
    NVIC_InitStructure.NVIC_IRQChannelCmd                 = ENABLE;
    NVIC_Init( &NVIC_InitStructure );
    
    UTIL_SetIrqHandler(USART2_IRQHandler, (tHandler)USART2_Handler);  //pointing out the handler
      /* Enable the USART2 */
      USART_Cmd(USART2, ENABLE);
      
      /* USART2 Receive and Transmite interrupt */
      USART_ITConfig(USART2, USART_IT_RXNE, ENABLE);
      USART_ITConfig(USART2, USART_IT_TXE, ENABLE);
      
    }