DMA1 funktioniert nicht mit USART1 in stm32f103c8?

stimmen
0

Ich versuche DMA1 mit USART1 in stm32f103c8 zu ermöglichen, aber es funktioniert nicht. i konnte die USART zu arbeiten als Sender. und dann konnte die DMA1 und machen diese Konfiguration zum 1 Aktivieren Sie die DMA1 Uhr von RCC. 2-deaktiviert die DMA1 Kanal. den DMA1 Kanal periority als sehr hoch periority 3 eingestellt. 4-machen die Richtung des DMA1 Kanal aus dem Speicher-Peripheriegerät. 5 machen die Speichergröße und periphere Größe als Byte. 6-enable-Speicherschritt und Deaktivieren peripheren inkrementieren. 7-enable Kreismodus. das DMA-Interrupt für Übertragung abgeschlossen 8 eingestellt. 7-Set der Speicheradresspuffer und stellte die Peripherieadresse als USART1 Datenregister. die Anzahl der Male, um die DMA-Übertragung als 6 8 eingestellt. 9-Kanal ermöglichen, das DMA1 Interrupt im NVIC. 10 Aktivieren Sie die DMAT im USART1 die USART Arbeit mit dem DMA1 machen 11 Aktivieren Sie die DMA1 zu Beginn der Arbeit.

erfolgreich nach all dieser Konfiguration hat der DMA nicht wok aber die USART Arbeit. in dem Hauptcode mache i intialize die USART1 und dann die DMA1 intialize wie ich sagte, und dann ein Zeichen zum Terminal und machen leer while (1) senden. das Terminal bekommen nur nur die char ich sende es hatte aber nicht die Zeichen im Speicher erhalten und die DMA ging nicht an die Prozedur des DMA, die die DMA bedeutet nicht, nie funktioniert, warum?

Veröffentlicht am 02/12/2019 um 23:57
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
0

Ich habe mein Problem, es war ein Fehler in der Konfiguration gelöst. der Fehler war, wenn ich die Adresse der Daten bin vorbei registriert Ich bin nicht vorbei die Adresse schon, aber ich bin vorbei der Wert der Datenadresse registrieren

Beantwortet am 08/12/2019 um 11:38
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more