AnsweredAssumed Answered

STM32F7 Discovery's USART6 problem

Question asked by b.bnarit on Nov 23, 2015
Latest reply on Nov 24, 2015 by b.bnarit
Hi.
I have problem on USART6 of the stm32f746-(ngh60 7ba3v vg z phl 3r 506)
on CR1-TXIE bit.
I have spent almost 3 days, checking on debugger and coding directly without HAL driver.
What I found is the TXIE interrupt masking bit that should blind the TXIE event in ISR is not prohibit the interrupt from occurring.

Is this the normal operation? If so, how could I disable Transmitting in USART? 
I have try to disable by trying to CLEARING TE bit in CR1 register. 
It flow correctly in debugger but not functioning, no signal came out  there is signal came out but not clean .

Here is my experimental code, I have experiences on STM32F4,STM32F030 none of them have this kind of problem before.

void USARTx_IRQHandler(void)
{
     if( UartHandle.Instance->ISR & 0x00000020) {
          int I = UartHandle.Instance->RDR;
     }else if( UartHandle.Instance->ISR & 0x00000080){
          UartHandle.Instance->RQR   |= 0x10;
          UartHandle.Instance->CR1 &=  ~0x00000080; //
disable TXIE
     }else if( UartHandle.Instance->ISR & 0x00000040) {
          UartHandle.Instance->ICR |= 0x40;
     }else if( UartHandle.Instance->ISR & 0x00000010) {
          UartHandle.Instance->ICR |= 0x10;
     }else if( UartHandle.Instance->ISR & 0x00000008) {
          UartHandle.Instance->ICR |= 0x08;
     }
}

Outcomes