#ifndef STM32_I2C_LCD_H
#define STM32_I2C_LCD_H
/*****************************************************************/
/* Paramètres à modifier en fonction *
* de votre carte STM32 et votre écran */
/* Inclure les en-têtes nécessaires pour la bibliothèque HAL de la STM32 */
#include "stm32l1xx_hal.h" // Remplacez par la bibliothèque HAL appropriée pour votre microcontrôleur
/* Définitions des paramètres du LCD */
#define I2C_ADDR 0x3f // Adresse I2C du PCF8574 utilisé pour contrôler le LCD
#define LCD_COLS 16 // Nombre de colonnes du LCD
#define LCD_ROWS 2 // Nombre de lignes du LCD
/******************************************************************/
/* Définitions des broches du LCD */
#define RS_BIT 0 // Bit pour le Register Select
#define EN_BIT 2 // Bit pour le Enable
#define BL_BIT 3 // Bit pour le rétroéclairage (BackLight)
#define D4_BIT 4 // Bit pour le Data 4
#define D5_BIT 5 // Bit pour le Data 5
#define D6_BIT 6 // Bit pour le Data 6
#define D7_BIT 7 // Bit pour le Data 7
/* Déclarations des fonctions pour manipuler le LCD */
void lcd_init(I2C_HandleTypeDef *hi2c); // Initialisation du LCD avec l'interface I2C
void lcd_write_string(char *str); // Écriture d'une chaîne de caractères sur le LCD
void lcd_set_cursor(uint8_t row, uint8_t column); // Positionnement du curseur sur le LCD
void lcd_clear(void); // Effacement de l'affichage du LCD
void lcd_backlight(uint8_t state); // Contrôle de l'état du rétroéclairage
#endif // STM32_I2C_LCD_H