DMA1 ne fonctionne pas avec USART1 dans stm32f103c8?

voix
0

Je suis en train de permettre DMA1 avec USART1 dans stm32f103c8 mais il ne fonctionne pas. i permis USART au travail comme émetteur. puis permis à la DMA1 et faire cette configuration, il 1 permet l'horloge DMA1 du RCC. 2 désactivé le canal DMA1. 3-régler le canal de DMA1 periority comme periority très élevé. 4-faire de la mémoire vers la direction périphérique du canal DMA1. 5 rendre la taille de la mémoire et la taille périphérique comme octet. 6 permettent incrément de mémoire et désactiver incrément périphérique. 7-activer le mode circulaire. 8 définir l'interruption DMA pour le transfert complet. 7-régler le tampon d'adresse de mémoire et de définir l'adresse de registre de données en tant que périphérique usart1. 8 définir le nombre de fois pour le transfert DMA comme 6. 9-activer l'alarme de canal de DMA1 dans le NVIC. 10 permettent DMAT dans le usart1 pour faire fonctionner USART avec le DMA1 11 permettre au DMA1 au travail Démarrer.

après tout cette configuration, le DMA ne wok mais le travail USART avec succès. dans le code principal je fais intialize le usart1 puis intialize le DMA1 comme me dit et puis envoyer un caractère à la borne et faire vide while (1). le terminal ne se que l'omble chevalier je devais l'envoyer mais pas recevoir le caractère dans la mémoire et le DMA ne va pas au gestionnaire du DMA qui signifie le DMA ne fonctionne pas jamais pourquoi?

Créé 02/12/2019 à 23:57
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
0

Je suis résolu mon problème était une erreur dans la configuration. l'erreur était quand je passe l'adresse des registre de données je ne suis pas passer l'adresse déjà, mais je passe la valeur des données registre d'adresse

Créé 08/12/2019 à 11:38
source utilisateur

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