 C'est prêt pour un nouveau lab ? C'est un nouveau lab, partie de notre STM32 H5 MOOC. Dans cet lab, nous allons utiliser le DMA, donc direct memory access, avec un peripheral, donc l'art de l'usage, en ce cas. Nous allons transmettre le data en utilisant l'art de l'art avec le DMA. C'est un lab basic DMA et nous allons avoir un autre, plus avancé, plus tard. Ce lab requiert que vous avez accompli les deux previews labs. Les objectifs de ces labs sont le suivant. D'abord, comprendre comment configurer le transfert de base d'DMA pour un peripheral. N°2, ajouter un code d'usage pour générer un transfert d'DMA. Ensuite, comme exemple, dans ce lab, nous allons utiliser l'art de l'usage, le API d'DMA pour transmettre le data à un terminal. Et ensuite, nous allons regarder les fonctions de callback que nous pouvons utiliser. Dans ce cas, nous allons contrôler une LED gris quand le transfert d'usage est complet. Nous allons réutiliser notre projet de preview sous l'art de l'art de l'usage, donc celui du lab 2. Nous allons donc ajouter une configuration. Dans ce cas, pour l'art de l'usage 3, nous allons ajouter une configuration d'usage d'DMA. Il y a un tab, ici, dans le peripheral, d'usage d'usage d'usage. Nous allons également évoluer l'interrupte pour l'art de l'usage 3. Et ensuite, quand ceci est terminé, nous allons aller dans l'art de l'usage d'usage d'usage et ensuite, nous allons aller à l'art de l'art de l'usage d'USA1. Ok, donc, dans notre projet de preview, dans le lab de preview, nous allons... C'est pas ouvert, maintenant, ouvrez votre projet, votre projet de preview. Et maintenant, nous allons ouvrir l'art de l'usage d'USA1. Dans l'art de l'usage d'USA1, ce que nous allons faire c'est d'aller à l'art de l'usage 3. Et puis, nous allons aller à l'art de l'usage d'usage d'USA1 d'enlever l'interrupte d'usage 3. Deuxièmement, nous allons monter à l'art de l'usage d'USA1. Dans la configuration de l'art de l'usage d'USA1, nous allons, au premier moment, sélectionner l'art de l'usage d'USA1 comme l'art de l'usage d'usage d'usage d'usage d'USA1. Ensuite, nous allons cliquer sur le tout le canal, ici, le tab, ici. Donc, comme vous pouvez le voir, quand vous sélectionnez le tout le canal, nous allons renommer le request pour l'art de l'usage d'USA1 comme l'art de l'usage d'USA1 comme l'art de l'usage d'USA1 comme l'art de l'usage d'USA1 La prochaine étape est de cliquer sur le ch0, donc le ch0 et nous allons faire la configuration suivante. Nous allons sélectionner la configuration circulaire mais, en ce cas, nous le disablerons. Nous allons sélectionner la configuration de l'usage d'usage d'USA1. Nous allons sélectionner la configuration du tonal nous allons aussi sélectionner le sommeil de la configuration et le sommeil de la destination de l'usage d'USA1. Le plan de la configuration le trafic et les différents sujets de configuration. Alors, ces sont les dens de l'USA1 plus que la configuration de l'usage d'USA1. En regardant le ch0 ce est le premier. Nous allons sélectionner request mode. Donc, le mode de liste linked va avoir un autre lab en plus tard. Mais premièrement, on va commencer par un easy dma, donc en utilisant le mode standard request. Dans le tab de l'all-channel, nous allons changer le nom du request. Comme nous l'avons dit, dma-request.usart.exe. On clique sur ch0, donc nous allons configurer le channel 0. Le mode de cycle est délevé, donc on va le garder délevé. Pour la configuration de l'all-channel, au lieu de la software, on choisit d'utiliser l'art 3.exe. On va garder le reste de la configuration pour la configuration de l'all-channel. Pour la configuration de l'all-channel, on va garder le prieit de l'auteuil. Il n'y a qu'une chaîne, donc ça ne fait pas le sens de changer le nom. Mais si vous avez plusieurs channels configurés, c'est là où vous pouvez installer la priorité de votre chaîne. La mode de transaction sera normale. Et pour la direction, donc ce n'est pas correct, donc ce n'est pas un périphèreur pour la mémoire, mais c'est une mémoire pour le périphèreur. Parce que nous allons transmettre le data. Donc nous allons transmettre le data de un buffer, donc de ram, et le data register de le périphèreur. Pour la position de la position de la source, donc on va voir ce qu'on a ici. Donc premièrement, l'adresse source incremente après transfert. Donc c'est la mémoire, donc oui, donc on veut faire ça. Donc nous allons transmettre le data de l'un à l'autre. Donc nous devons incrementer le pointeur à la table que nous voulons transmettre. Le data width sera un byte. Burst length est 1. Et pour la porte sélection, nous allons utiliser la porte 0. Pour la position de destination, donc il n'y a pas besoin d'increment, vous savez, l'adresse destination, parce que vous savez, c'est le data register de votre périphèreur, donc ça ne change pas l'adresse. Donc disablez-le. Ensuite, le data width est le même, donc byte. Donc nous voulons faire sure que nous avons le même, vous savez, comme un data width. Donc nous allons le garder en byte. Et nous allons garder le reste de la configuration. Burst length et pour la porte, nous allons changer à porte 1. Le reste de la configuration, data handling, trigger et transfert, even configuration, vont rester les mêmes. Donc il n'y a pas besoin de changer, gardez-le par défaut. Cela conclure la configuration de la GPDMA1. Maintenant, nous pouvons générer le code. Donc souvenez-le, cette petite icône, afin de générer le code. C'est le code que nous allons ajouter. Donc le code pour être ajouté, comme avant, peut être trouvé dans la description de cette vidéo. Numéro 1, nous allons ajouter l'incrude pour string.h. Numéro 2, nous allons ajouter notre buffer. Donc c'est le buffer qui va contenir le message pour être envoyé. Numéro 3, nous allons changer la fonction de callback pour l'EXTI. Donc ici, ce que nous allons faire, est commenter les deux fonctions de première fonction, que nous avons publiées précédemment. Et nous allons ajouter le nouveau. Donc nous allons ajouter cet API, de notre library HAL. Donc HAL underscore UART underscore transmit underscore DMA. Donc c'est l'API afin de transmettre le data en utilisant DMA pour l'UART. Comme paramètres, nous allons donner l'adresse de l'UART3 handler. Ensuite, nous allons donner la source de la data qu'on veut envoyer. Donc c'est ma buffer. Et ensuite, la dernière partie est la longueur. Donc en utilisant ces fonctions, nous allons trouver la longueur de ma buffer. Donc, afin de envoyer le string complet de la data. La dernière pointe est pour ajouter un callback function. Dans cette fonction, ce que nous allons faire, c'est que quand tout le transfert a été complet, nous allons then toggle l'LED. Donc pb0. Et ce sera la dernière code pour être ajoutée. Le reste de la code, la première code, n'a pas besoin d'un changement. En main.c, scroll all the way up. Et puis add include string.h. Maintenant, nous allons ajouter la buffer que nous voulons envoyer. Donc la buffer conténue, la message que nous voulons envoyer. À ce point, nous pouvons modifier la function de callback que nous avons ajoutée précédemment. Nous allons scroll down. C'est la première. C'est la première. Nous allons commenter les cours précédents. Et ajouter l'API pour transmettre la data en utilisant DMA pour UART. Maintenant, nous pouvons ajouter la function de transfert complet de UART. Donc, quand la transfert de DMA a été complet, ce que nous allons faire est toggle l'LED. Nous avons terminé l'adding code. Maintenant, construis votre projet. Nous sommes prêts à tester notre code sur la base nucléaire. Donc, pour faire ça. Donc, si vous savez que la base nucléaire a été connectée précédemment, n'hésitez pas à connecter et reconnecter. Donc, ceci est pour bien déconnecter le console précédent en QBID. Maintenant, entre debug. Switch contexte. Exécuter la code. Donc, résume cet icône. Maintenant, nous devons ouvrir le console. Donc, souvenez-vous, cet icône, là-bas, commande console. Et puis, nous allons faire des portes sérielles. Sélectionnez les portes sérielles que nous avons créées précédemment. Et pressez OK. Maintenant, nous sommes connectés. Et nous allons tester notre code. Donc, si je pressais sur le bouton d'utilisation sur ma base nucléaire, vous voyez que je vois le message. Donc, ceci a été envoyé, vous savez, comme tous ces données, j'ai été envoyé avec DME. Et aussi, je peux voir que ma LED, ma green LED, est prétendue à chaque transfert. Donc, chaque fois que je presse, je le vois prétendue. Donc, ça fonctionne parfaitement bien. Excellent. Donc, nous pouvons maintenant arrêter l'exécution. Et nous sommes prétendus avec cet icône.