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
Das würde mich aml auch interessieren! Selber Uart, selbes Problem -_-
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.