STM32F103 UART DMA
Petr Labaj
labaj na volny.cz
Úterý Prosinec 26 17:14:44 CET 2023
Můžu drobnou poznámku, která je ale obecnější a s daným problémem nesouvisí?
Vy všude používáte "orování" parametrů, které zadáváte do řídících registrů.
Např.:
USART2->CR1 |= USART_CR1_TE | USART_CR1_RE;
nebo
DMA1_Channel6->CCR |= DMA_CCR_MINC | DMA_CCR_CIRC | DMA_CCR_TCIE;
Ale používáte to i při prvním zápisu do daného registru.
Tedy jinými slovy spoléháte na to, že předtím tam byly samé nuly.
Což může být velice zrádné, když tu konstrukci použijete třeba i někdy
později, kdy už v těch registrech něco je.
Takže by podle mě měl první zápis vypadat takhle:
USART2->CR1 = USART_CR1_TE | USART_CR1_RE;
nebo
DMA1_Channel6->CCR = DMA_CCR_MINC | DMA_CCR_CIRC | DMA_CCR_TCIE;
A orování použít až když tam už dodatečně něco přidáváte.
PL
Další informace o konferenci Hw-list