STM32H745I-DISCO UART communication problem
Hello everyone,
First of all I am kinda new in ARM (I never use), I am working on the STM32H745I-DISCO board (using the CM7 core) and I am facing a persistent issue with UART . No matter what I try, the RX Interrupt never triggers, and the code never enters the HAL_UART_RxCpltCallback.
My Setup: Board: STM32H745I-DISCO
IDE: STM32CubeIDE (Latest Version)
Scenario: UART Loopback Test (Connecting TX to RX physically).
Peripheral: USART6 (TX: PC6 / RX: PC7) on the Arduino Headers (D1/D0).
Settings: 115200 baud, 8N1, Asynchronous.
The Problem:
-HAL_UART_Transmit works fine (signals observed). HAL_UART_Receive_IT returns HAL_OK. However, the HAL_UART_RxCpltCallback is never executed. When checking SFRs in Debug mode: RXNE flag stays at 0.
What I have verified so far (Step-by-Step):
NVIC Settings: USART6 global interrupt is Enabled in CubeMX.
Vector Table: USART6_IRQHandler exists in stm32h7xx_it.c and calls HAL_UART_IRQHandler.
Initialization Order: I ensured that MX_USART6_UART_Init() is called BEFORE HAL_UART_Receive_IT in main.c.
Cache Management: I know H7 has cache coherence issues, so I completely Disabled D-Cache (SCB_DisableDCache()) at the beginning of main() to avoid DMA/Buffer issues (even though I am using IT, not DMA).
Hardware: Tested with a jumper wire between PC6 and PC7. I also tried different UART pins (like UART3 VCP), but the result is the same.(Also I tried another pins and UARTx or USARTy )
HardFault: Previously I had HardFaults due to init order, but that is fixed. The code runs, the while(1) loop blinks the LED, but no interrupt occurs.
Can someone help me?



