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);
// }
}
}