Forum: Mikrocontroller und Digitale Elektronik STM32 USART1 config Problem


von Heikon (Gast)


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
von Flo (Gast)


Lesenswert?

Das würde mich aml auch interessieren!

Selber Uart, selbes Problem -_-
von Heikon (Gast)


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
von Matthias (Gast)


Lesenswert?

Richtiges Startup und Linkerscript, passend zum speziellen STM32 Typ?
von Heikon (Gast)


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.
von Heikon (Gast)


Lesenswert?

Hat hier noch keiner mit der USART1 gearbeitet?
Oder keine Probleme gehabt?

Heikon
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.