Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

Dma transmit completed

Başlatan robikod, 09 Temmuz 2021, 13:53:42

robikod

Merhaba,

UART haberleşmesini DMA yardımıyla yapıyorum. Normal Mode kullanıyorum.

HAL_UART_TxCpltCallback kullanıyordum, bu kullanımımdan sonra kartın hardfaulta gittiğini gördüm daha sonra Transmit Completed flag'ine bakmaya karar verdim.

  __HAL_UART_ENABLE_IT(&huart2, UART_IT_TC);  bunu aktif ettikten sonra, UART2 handleri içinde stm32f4xx_it.c içinde aşağıdaki gibi txCmp bitini sete çekip main loopta bu flag e bakıp tekrar receive dma başlattım. Ancak yine hardfaulta gidiyor kart. __HAL_UART_CLEAR_FLAG çağırdığımda hiç transmit etmiyor.

Transmit Completed olduğunu nasıl anlayabilirim başka bakmam gereken flag var mı
void USART2_IRQHandler(void)
{
    if( (__HAL_UART_GET_FLAG(&huart2, UART_FLAG_TC) == SET))
    {
      txCmp = 1;
    //    __HAL_UART_CLEAR_FLAG(&huart2, UART_FLAG_TC);       
      
//     }
    
  }
}