Dma transmit completed

Başlatan robikod, 09 Temmuz 2021, 16: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(&huart2UART_FLAG_TC) == SET))
    {
      
txCmp 1;
    
//    __HAL_UART_CLEAR_FLAG(&huart2, UART_FLAG_TC);       
      
//     }
    
  
}
}

Yasal Uyarı: Picproje.org sitemizde 5651 sayılı kanunun 8. maddesine ve T.C.Knın 125. maddesine göre tüm üyelerimiz yaptıkları paylaşımlardan kendileri sorumludur. Picproje.org hakkında yapılacak tüm hukuksal şikayetleri İletişim sayfamızdan bize bildirdikten en geç 3 (üç) iş günü içerisinde ilgili kanunlar ve yönetmelikler çerçevesinde tarafımızca incelenerek gereken işlemler yapılacak ve site yöneticilerimiz tarafından bilgi verilecektir.