Hallo Kollege. Ich helfe meinem Freund eine von ihm entwickelte Platine mit USART1 zu initialisieren. Bin schon ein Paar Abende dabei die USART1 am CH32V203C8T6 zum Laufen zu bringen.
USART2 hatte ich schon länger am Laufen und ich kopierte einfach mal alles was dazu gehört für UART1. Diese Unterschiede habe ich berücksichtigt und geändert:
- USART2 TX-PA2, RX-PA3, Takt Bus – APB1
- USART1 TX-PA9, RX-PA10, Takt Bus – APB2
- USART2 wurde überall mit USART1 überschrieben.
Getestet wird auf einem Test Board „BluePill+“ von WeActStudio mit CH32V203C8T6. IDE „MounRiver Studio 2“.
In der while() Schleife sind nur die USART1, USART2 Ausgaben und eine blinkende LED. Die detaillierte USART Ausgaben beobachte ich auf einem Digitalen Logic Analyzer.
Wenn nur USART2 einen Text ausgibt – läuft alles. Auf dem Analyzer kann der Text gelesen werden. Die LED blinkt munter.
Die USART1 kann komplett initialisiert werden - auch dann ist alles OK. Sobald die USART1 Text Ausgabe dazu geschaltet wird – bleibt das Programm hängen.
- Keine Ausgabe am Analyzer
- Die LED bleibt AN und blinkt nicht.
Hab versucht es mal zu debuggen. Das Programm bleibt in einem Assembler Code hängen mit dem ich leider wenig was anfangen kann. Das alles wurde schon auf 2 Boards ausprobiert.
Hat jemand einen Rat?
