Nous avons 73 invités et aucun membre en ligne

Le périphérique I2C permet de communiquer avec plusieurs circuits à l'aide de deux fils seulement.

Dans la vidéo, je fais la lecture d'un circuit Real-time clock DS1307 via le bus I2C. Sur les broches 1 et 2 du circuit DS1307, il faut placer un crystal de 32.768 kHz pour avoir une bonne temporisation. Il ne faut pas oublier de mettre des résistances de pull-up de 10k sur le signal SDA et SCL.

Lors de la création d'un nouveau projet avec le CubeMx, il suffit d'activer le périphérique I2C voulu pour qu'il s'ajoute à notre microcontrôleur. Par la suite, on peut configurer tous les paramètres de notre communication comme la vitesse de l'horloge, le nombre de bit pour l'adresse ou tout autres paramètres.

Une fois dans notre environnement de programmation, on aura simplement à utiliser la commande suivante pour lire notre circuit RTC :

HAL_I2C_Mem_Read(&hi2c1, 0xD0, 0x00, 1, &ucData[0], 1, 1000);

Évidemment, l'adresse mémoire du circuit va changer selon la donnée qu'on souhaite lire, mais la forme reste la même.

Que ce soit un module RTC, un circuit de mémoire, un capteur ou tout autre circuit en I2C, le fonctionnement reste très simple à réaliser avec le microcontrôleur STM32.

Abonnés et Abonnés VIP
<--- Code en C modifiable