STM32 USART1 config Problem

Gast #2499563
Lesenswert?
• ▲
▼
Hallo,

habe ein sehr komisches Problem:
Ich initialisiere die USART1 auf den PortPins A9/10

if (__USART1_USED)                    // USART1 used
{
   RCC->APB2ENR |= RCC_APB2ENR_USART1EN;   // enable clock for USART1

   USART1->SR &= (~USART_FLAG_TXE & ~USART_FLAG_TC & ~USART_FLAG_RXNE);

   USART1->BRR  = __USART_BRR(__PCLK2, __USART1_BAUDRATE);  // Calc BR

   USART1->CR2  = 0;            // set Stop bits
   USART1->CR3  = 0xC0;         // Set DMA Control

   USART1->CR1 |= USART_CR1_TCIE;
   USART1->CR1 |= USART_CR1_RE;
   USART1->CR1 |= USART_CR1_TE;   // RX, TX enable
   USART1->CR1 |= USART_CR1_UE;   // USART enable, Oversampling of 8/16

// USART Port Config PA.9 und PA.10 as USART
   GPIOA->AFR[1] |= 0x00000770;

   if (!__USART1_DMA)       // USART Interrupt used
   {
      USART1->CR3  = __USART1_CR3 & 0xFFFFFF3F; // DMA Bits löschen .6 
.7
   }
   NVIC_EnableIRQ(USART1_IRQn);
} // end USART1 used

Wenn ich das so mache, hängt er sich in der startup_stm32..... hinter 
der Interrupt Tabelle auf und steht.
Nehme ich das TCIE Bit weg (also kein Interrupt Transfer Complete), dann 
läuft die Software durch.

Vorher hatte ich in einem anderen Projekt die USART2 in Betrieb nach dem 
gleichen Schema, das hat 100% funktioniert.

Sieht einer den Bock??

Vielen Dank schon mal für die Hilfe.

Heikon
Gast #2503323
Lesenswert?
• ▲
▼
Nochmal, um den Thread wieder nach oben zu bekommen ;-)

Ich habe auch alle Interrupt_Handler Namen überprüft und auch so sind 
keine Unstimmigkeiten zu erkennen.

Es ist übrigens bei beiden Tx Interrupts der Fall, im Rx kann ich alle 
Interrupts aktivieren und alles ist gut.
Sobald einer der Tx Interrupts TC oder TxE enabled sind, will er nicht 
mehr.

Controller Fehler????

VG
Heikon
Gast #2503537
Lesenswert?
• ▲
▼
Ja, da ist alles korrekt.

Ich habe jetzt noch in die eingebundene stm32l1xx_it.c den 
USART1_IRQHandler eingebunden und rufe von dort meine Applikations-ISR 
auf.
Dann hängt er an dieser Stelle, wo der IRQHandler definiert ist.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.