Ich verwende HAL-Treiber mit Code von CubeMX generiert. In der Hauptroutine rief ich HAL_UART_Receive_IT()
an. Nach dem Übertragen von Daten über UART (das in einer Loopback-Weise verbunden ist) kann ich sehen, dass das Modul ein Byte empfängt und das RXNE-Bit in Registern setzt. Interrupt wird jedoch nicht generiert? Ich kann nicht erklären, warum ... In HAL_UART_Receive_IT()
Funktion gibt es Code ermöglicht Interrupts, also was ist los?STM32 HAL UART RXNE Interrupt nicht generiert
2
A
Antwort
4
Sie geben nicht genug Informationen und Code in Ihrer Frage. Wie auch immer, in Ihrer stm32xx_hal_msp.c Datei initialisieren Sie von der Hardware Sicht Peripherie: sicher sein, Interrupts zu
HAL_NVIC_SetPriority(USART1_IRQn, 0, 1);
HAL_NVIC_EnableIRQ(USART1_IRQn);
Dann
void USART1_IRQHandler(void)
{
HAL_UART_IRQHandler(&huart1);
}
auf Ihre stm32xx_it.c Datei hinzufügen zu aktivieren
Verwandte Themen
- 1. i2c Interrupt-Handler stm32
- 2. STM32 WWDG Interrupt feuern, wenn nicht konfiguriert
- 3. EEPROM-Emulation auf stm32 mit HAL-Treibern
- 4. STM32 Interrupt Handeling wenn Bedingung
- 5. Warum funktioniert der UART-Sende-Interrupt in diesem Fall nicht?
- 6. Wie uart RX halten Interrupt für immer mit HAL-Bibliothek auf einem STM32F1
- 7. Set 16550A UART Hardware FIFO-Interrupt-Ebene von Linux Userspace
- 8. Mehrere Trigger auf STM32-Timer
- 9. PIC32MX795F512H UART-Kommunikation zu RS232
- 10. UART mit STM32F407 (F4Discovery)
- 11. STM32 Wechsel von Standard-Peripherie zu HAL. USB-Gerät erscheint immer als "Unbekanntes Gerät" in Windows
- 12. Uart Puffer wird nicht gelesen
- 13. Kann das USART-Protokollgerät mit UART-Protokollgeräten verbunden werden?
- 14. Keine Interrupts werden in UART empfangen empfangen auf PIC18F2680
- 15. Emulation UART über USB
- 16. Gerät reagiert nicht auf UART-Befehle
- 17. UART Geschwindigkeit möglicherweise falsch
- 18. Android Parse HAL + JSON
- 19. warum Interrupt-Routine nicht stoppt?
- 20. Wie kann ich einen Timer auf STM32 starten und stoppen?
- 21. Software-Interrupt
- 22. stm32 flash halbes page schreiben
- 23. pic16f877a uart eingebettet c code
- 24. MSP430 UART empfängt eine Zeichenfolge
- 25. GATT Profil und UART Service
- 26. Perl Thread Interrupt Schlaf nicht funktioniert
- 27. x86 Hardware Interrupt funktioniert nicht auf qemu
- 28. STM32F1xx CAN2-Empfangs-Interrupt wird nicht aufgerufen
- 29. Warum Interrupt 0x2A funktioniert nicht in x64?
- 30. Spring Data REST in einfacher JSON (nicht HAL-Format)
Es ist ein wenig schwierig zu erraten, ohne den spezifischen Code, mein Vorschlag wäre, die E/A-Registereinstellungen im Debugger zu sehen, um Kuriositäten in der Initialisierung zu erkennen, und wenn das fehlschlägt, extrahiere einen minimalen Repro-Fall mit direkten Registerschreibvorgängen. Wie auch immer, können Sie näher erläutern, wie Sie wissen, dass der Interrupt nicht ausgegeben wird? Haben Sie überprüft, dass der Interrupt-Vektor richtig geroutet ist und Interrupts nicht global maskiert wurden? – doynax