Bienvenue sur la documentation de ma bibliothèque SSD1306 pour les microcontrôleur de la gamme CH32V00X. Cette documentation a pour but de décrire les fonctions et montrer des exemples d’utilisations.
Cette bibliothèque est fournit pour fonctionner avec le compilateur fournit dans l’IDE MountRiver studio II ( ou I ).
Pour installer la bibliothèque, il suffit juste de récupérer les fichiers sources ( .c ) et header ( .h ) puis de les ajouter dans les sources de votre projet. Pour une utilisation de base, vous pouvez utiliser les fichiers SSD1306.c et SSD1306.h uniquement. Pour une utilisation plus complexe, veuillez ajouter les fichiers concernant la fonctionnalité que vous voulez ajouter ( image, text etc… ).
La bibliothèque s’articule autour d’une structure nommé « SSD1306 ». Cette structure servira juste à stocker des informations comme l’adresse et la taille de l’écran. C’est également elle qui va stocker en RAM les informations que l’on souhaitera afficher sur l’écran.
typedef struct SSD1306{
uint8_t addr, h, *screen_buffer;
}SSD1306;
La structure s’initialise avec la fonction SSD1306_init dont voici le prototype :
SSD1306 SSD1306_init(uint8_t addr, uint8_t screen_height);
Cette fonction met en permet de définir les différents paramètres de l’écran ainsi que d’allouer de la mémoire au « buffer » stockant les informations à afficher sur l’écran.
Cette fonction désalloue la mémoire donné au screen_buffer, voici son prototype :
void SSD1306_destroy(SSD1306 *display);
Cette fonction permet de dessiner un pixel sur l’écran, elle prend en paramètre la position du pixel et la valeur du pixel ( éteint ou allumé ). Voici son prototype :
void SSD1306_draw_pixel(SSD1306 *display, uint8_t x, uint8_t y, uint8_t pixel_value);
Cette fonction permet de nettoyer l’écran ( erreur de traduction, elle devrait normalement s’appeler SSD1306_clear ). Ce nettoyage peut être fait en allumant tous les pixels ou en les éteignant tous. Voici le prototype :
void SSD1306_clear(SSD1306 *display, uint8_t pixel_value);
Cette fonction permet de définir le contraste de l’écran. Ce niveau de contraste va de 0 à 255.
void SSD1306_set_constrast(SSD1306 *display, uint8_t contrast);
Cette fonction permet de faire le rendu du buffer dans l’afficheur OLED. Elle peut surtout être utiliser pour mieux comprendre le rendu du buffer sur l’écran ou à des fins de débogage. En effet, cette fonction découpe l’affichage en plusieurs trames I2C ce qui la rend plus facile à comprendre et à écrire mais la rend lente. Pour un affichage plus rapide il est recommandé d’utiliser la fonction « SSD1306_fast_render_screen ».
void SSD1306_render_screen(SSD1306 *display);
Cette fonction permet de faire le rendu du buffer dans l’afficheur OLED. Elle permet théoriquement d’atteindre les 60 fps si elle est correctement utilisé. Voici son prototype :
void SSD1306_fast_render_screen(SSD1306 *display);
Cette fonction permet d’envoyer des commandes au SSD1306 ( comme par exemple demander l’extinction de l’écran ). Elle peut s’utiliser avec des macros déjà présentes dans la bibliothèque ( voir tableau plus bas ). Voici son prototype :
void SSD1306_send_command(SSD1306 *display, uint8_t command);
Cette fonction permet d’envoyer des données au SSD1306, ces données sont surtout destiné à aller dans la mémoire du driver de l’écran. Ainsi, elle permet de modifier le contenu de ce qui est afficher à l’écran
void SSD1306_send_data(SSD1306 *display, uint8_t data);
| Macro | Description |