{"id":11,"date":"2025-03-30T15:54:53","date_gmt":"2025-03-30T13:54:53","guid":{"rendered":"https:\/\/stm32.elec-core.fr\/?p=11"},"modified":"2025-03-30T15:54:53","modified_gmt":"2025-03-30T13:54:53","slug":"chapitre-3-configuration-des-peripheriques","status":"publish","type":"post","link":"https:\/\/stm32.elec-core.fr\/index.php\/2025\/03\/30\/chapitre-3-configuration-des-peripheriques\/","title":{"rendered":"Chapitre 3 : Configuration des P\u00e9riph\u00e9riques"},"content":{"rendered":"\n<p>Bienvenue dans le Chapitre 3 de notre guide sur la programmation des microcontr\u00f4leurs STM32. Maintenant que vous avez configur\u00e9 votre environnement de d\u00e9veloppement et les horloges, il est temps de plonger dans la configuration des p\u00e9riph\u00e9riques. Les microcontr\u00f4leurs STM32 sont \u00e9quip\u00e9s d&#8217;une multitude de p\u00e9riph\u00e9riques int\u00e9gr\u00e9s qui permettent de r\u00e9aliser des applications vari\u00e9es. Ce chapitre vous guidera \u00e0 travers la configuration des p\u00e9riph\u00e9riques les plus couramment utilis\u00e9s.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>1. GPIO (General Purpose Input\/Output)<\/strong><\/h3>\n\n\n\n<p>Les broches GPIO sont essentielles pour interagir avec le monde ext\u00e9rieur. Elles peuvent \u00eatre configur\u00e9es en entr\u00e9e ou en sortie et sont utilis\u00e9es pour lire des capteurs ou contr\u00f4ler des actionneurs.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Configuration des GPIO<\/strong><\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>S\u00e9lection des Broches<\/strong>\n<ul class=\"wp-block-list\">\n<li>Utilisez STM32CubeMX pour s\u00e9lectionner les broches que vous souhaitez configurer en GPIO.<\/li>\n\n\n\n<li>D\u00e9finissez le mode (entr\u00e9e, sortie, altern\u00e9e, analogique) et la vitesse de chaque broche.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>G\u00e9n\u00e9ration du Code<\/strong>\n<ul class=\"wp-block-list\">\n<li>G\u00e9n\u00e9rez le code d&#8217;initialisation avec STM32CubeMX et int\u00e9grez-le dans votre projet PlatformIO.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Utilisation des GPIO<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u00c9crivez du code pour lire l&#8217;\u00e9tat des broches d&#8217;entr\u00e9e ou pour d\u00e9finir l&#8217;\u00e9tat des broches de sortie.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>2. Timers<\/strong><\/h3>\n\n\n\n<p>Les timers sont des p\u00e9riph\u00e9riques polyvalents qui permettent de g\u00e9n\u00e9rer des interruptions p\u00e9riodiques, de mesurer des dur\u00e9es, ou de produire des signaux PWM.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Configuration des Timers<\/strong><\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>S\u00e9lection du Timer<\/strong>\n<ul class=\"wp-block-list\">\n<li>Choisissez le timer que vous souhaitez utiliser dans STM32CubeMX.<\/li>\n\n\n\n<li>Configurez la base de temps et le prescaler pour obtenir la fr\u00e9quence souhait\u00e9e.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>G\u00e9n\u00e9ration de PWM<\/strong>\n<ul class=\"wp-block-list\">\n<li>Configurez les canaux de sortie pour g\u00e9n\u00e9rer des signaux PWM.<\/li>\n\n\n\n<li>Utilisez les timers pour contr\u00f4ler des moteurs ou des LED avec une luminosit\u00e9 variable.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Interruptions<\/strong>\n<ul class=\"wp-block-list\">\n<li>Configurez les interruptions pour ex\u00e9cuter du code \u00e0 intervalles r\u00e9guliers.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>3. Communication S\u00e9rie (UART)<\/strong><\/h3>\n\n\n\n<p>La communication s\u00e9rie UART est couramment utilis\u00e9e pour \u00e9changer des donn\u00e9es entre le microcontr\u00f4leur et d&#8217;autres p\u00e9riph\u00e9riques.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Configuration de l&#8217;UART<\/strong><\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>S\u00e9lection des Broches<\/strong>\n<ul class=\"wp-block-list\">\n<li>Configurez les broches TX et RX dans STM32CubeMX.<\/li>\n\n\n\n<li>D\u00e9finissez la vitesse de transmission (baud rate) et les autres param\u00e8tres de communication.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Envoi et R\u00e9ception de Donn\u00e9es<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u00c9crivez du code pour envoyer et recevoir des donn\u00e9es via l&#8217;UART.<\/li>\n\n\n\n<li>Utilisez les interruptions pour g\u00e9rer les donn\u00e9es entrantes.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>4. I2C et SPI<\/strong><\/h3>\n\n\n\n<p>Les interfaces I2C et SPI sont utilis\u00e9es pour communiquer avec des capteurs et d&#8217;autres p\u00e9riph\u00e9riques externes.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Configuration de l&#8217;I2C<\/strong><\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>S\u00e9lection des Broches<\/strong>\n<ul class=\"wp-block-list\">\n<li>Configurez les broches SCL et SDA dans STM32CubeMX.<\/li>\n\n\n\n<li>D\u00e9finissez la fr\u00e9quence de communication.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Communication avec des P\u00e9riph\u00e9riques<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u00c9crivez du code pour lire et \u00e9crire des donn\u00e9es sur le bus I2C.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Configuration du SPI<\/strong><\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>S\u00e9lection des Broches<\/strong>\n<ul class=\"wp-block-list\">\n<li>Configurez les broches MOSI, MISO, SCK, et NSS dans STM32CubeMX.<\/li>\n\n\n\n<li>D\u00e9finissez le mode de communication (ma\u00eetre ou esclave) et la fr\u00e9quence.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Communication avec des P\u00e9riph\u00e9riques<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u00c9crivez du code pour \u00e9changer des donn\u00e9es via le bus SPI.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>5. ADC (Analog to Digital Converter)<\/strong><\/h3>\n\n\n\n<p>Le convertisseur analogique-num\u00e9rique (ADC) permet de lire des valeurs analogiques provenant de capteurs.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Configuration de l&#8217;ADC<\/strong><\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>S\u00e9lection des Canaux<\/strong>\n<ul class=\"wp-block-list\">\n<li>Configurez les canaux ADC dans STM32CubeMX.<\/li>\n\n\n\n<li>D\u00e9finissez la r\u00e9solution et la fr\u00e9quence d&#8217;\u00e9chantillonnage.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Lecture des Valeurs<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u00c9crivez du code pour lire les valeurs analogiques et les convertir en num\u00e9rique.<\/li>\n\n\n\n<li>Utilisez les interruptions pour traiter les conversions.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>6. DAC (Digital to Analog Converter)<\/strong><\/h3>\n\n\n\n<p>Le convertisseur num\u00e9rique-analogique (DAC) permet de g\u00e9n\u00e9rer des signaux analogiques.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Configuration du DAC<\/strong><\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>S\u00e9lection des Canaux<\/strong>\n<ul class=\"wp-block-list\">\n<li>Configurez les canaux DAC dans STM32CubeMX.<\/li>\n\n\n\n<li>D\u00e9finissez la fr\u00e9quence de sortie.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>G\u00e9n\u00e9ration de Signaux<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u00c9crivez du code pour g\u00e9n\u00e9rer des signaux analogiques.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>7. Autres P\u00e9riph\u00e9riques<\/strong><\/h3>\n\n\n\n<p>Les microcontr\u00f4leurs STM32 disposent de nombreux autres p\u00e9riph\u00e9riques, tels que l&#8217;USB, l&#8217;Ethernet, et le CAN. La configuration de ces p\u00e9riph\u00e9riques suit un processus similaire \u00e0 celui d\u00e9crit ci-dessus.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Configuration Avanc\u00e9e<\/strong><\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>USB<\/strong>\n<ul class=\"wp-block-list\">\n<li>Configurez le p\u00e9riph\u00e9rique USB pour permettre la communication avec un ordinateur h\u00f4te.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Ethernet<\/strong>\n<ul class=\"wp-block-list\">\n<li>Configurez l&#8217;interface Ethernet pour connecter votre STM32 \u00e0 un r\u00e9seau.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>CAN<\/strong>\n<ul class=\"wp-block-list\">\n<li>Configurez le bus CAN pour la communication dans les v\u00e9hicules et les syst\u00e8mes industriels.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p>En suivant ces \u00e9tapes, vous serez en mesure de configurer et d&#8217;utiliser les diff\u00e9rents p\u00e9riph\u00e9riques de votre microcontr\u00f4leur STM32. Vous pourrez ainsi d\u00e9velopper des applications complexes et interactives.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><strong>Pr\u00eat \u00e0 explorer les syst\u00e8mes temps r\u00e9el ? D\u00e9couvrez comment int\u00e9grer FreeRTOS dans votre projet STM32 dans le prochain chapitre !<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bienvenue dans le Chapitre 3 de notre guide sur la programmation des microcontr\u00f4leurs STM32. Maintenant que vous avez configur\u00e9 votre environnement de d\u00e9veloppement et les horloges, il est temps de plonger dans la configuration des p\u00e9riph\u00e9riques. Les microcontr\u00f4leurs STM32 sont \u00e9quip\u00e9s d&#8217;une multitude de p\u00e9riph\u00e9riques int\u00e9gr\u00e9s qui permettent de r\u00e9aliser des applications vari\u00e9es. Ce chapitre [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-11","post","type-post","status-publish","format-standard","hentry","category-non-classe"],"_links":{"self":[{"href":"https:\/\/stm32.elec-core.fr\/index.php\/wp-json\/wp\/v2\/posts\/11","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/stm32.elec-core.fr\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/stm32.elec-core.fr\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/stm32.elec-core.fr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/stm32.elec-core.fr\/index.php\/wp-json\/wp\/v2\/comments?post=11"}],"version-history":[{"count":1,"href":"https:\/\/stm32.elec-core.fr\/index.php\/wp-json\/wp\/v2\/posts\/11\/revisions"}],"predecessor-version":[{"id":12,"href":"https:\/\/stm32.elec-core.fr\/index.php\/wp-json\/wp\/v2\/posts\/11\/revisions\/12"}],"wp:attachment":[{"href":"https:\/\/stm32.elec-core.fr\/index.php\/wp-json\/wp\/v2\/media?parent=11"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/stm32.elec-core.fr\/index.php\/wp-json\/wp\/v2\/categories?post=11"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/stm32.elec-core.fr\/index.php\/wp-json\/wp\/v2\/tags?post=11"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}