Driver OLED SPI SSD1309 (128×64) pour Brick. Plus de détails...
#include "drv_display.h"
#include "ch.h"
#include "hal.h"
#include "brick_config.h"
#include <string.h>
Fonctions | |
uint8_t * | drv_display_get_buffer (void) |
Retourne un pointeur sur le framebuffer interne. | |
void | drv_display_init (void) |
Initialise l’écran OLED et configure le SSD1309. | |
void | drv_display_clear (void) |
Efface complètement le framebuffer. | |
void | drv_display_update (void) |
Transfère le contenu du framebuffer vers l’écran OLED. | |
void | drv_display_set_font (const font_t *font) |
Définit la police courante utilisée pour le rendu texte. | |
void | drv_display_draw_char (uint8_t x, uint8_t y, char c) |
Dessine un caractère à une position donnée. | |
void | drv_display_draw_text (uint8_t x, uint8_t y, const char *txt) |
Dessine une chaîne de caractères à partir d’une position. | |
void | drv_display_draw_text_with_font (const font_t *font, uint8_t x, uint8_t y, const char *txt) |
Dessine une chaîne en utilisant une police spécifique. | |
void | drv_display_draw_text_at_baseline (const font_t *font, uint8_t x, uint8_t baseline_y, const char *txt) |
Dessine du texte aligné sur une ligne de base. | |
void | drv_display_draw_number (uint8_t x, uint8_t y, int num) |
Affiche un entier décimal à la position donnée. | |
void | drv_display_draw_char_in_box (const font_t *font, uint8_t x, uint8_t y, uint8_t box_w, uint8_t box_h, char c) |
Dessine un caractère centré dans une boîte rectangulaire. | |
void | drv_display_start (void) |
Démarre le thread d’affichage automatique. | |
Driver OLED SPI SSD1309 (128×64) pour Brick.
Ce module implémente le pilotage complet d’un écran OLED monochrome via l’interface SPI1 du STM32.
Fonctions principales :
halconf.h
void drv_display_clear | ( | void | ) |
Efface complètement le framebuffer.
Efface tout le contenu du framebuffer.
void drv_display_draw_char | ( | uint8_t | x, |
uint8_t | y, | ||
char | c | ||
) |
Dessine un caractère à une position donnée.
Dessine un caractère ASCII à la position spécifiée.
void drv_display_draw_char_in_box | ( | const font_t * | font, |
uint8_t | x, | ||
uint8_t | y, | ||
uint8_t | box_w, | ||
uint8_t | box_h, | ||
char | c | ||
) |
Dessine un caractère centré dans une boîte rectangulaire.
font | Police utilisée. |
x | Coin supérieur gauche de la boîte (X). |
y | Coin supérieur gauche de la boîte (Y). |
box_w | Largeur de la boîte. |
box_h | Hauteur de la boîte. |
c | Caractère à afficher. |
void drv_display_draw_number | ( | uint8_t | x, |
uint8_t | y, | ||
int | num | ||
) |
Affiche un entier décimal à la position donnée.
Affiche un nombre entier sous forme décimale.
void drv_display_draw_text | ( | uint8_t | x, |
uint8_t | y, | ||
const char * | txt | ||
) |
Dessine une chaîne de caractères à partir d’une position.
Affiche une chaîne de caractères à partir d’une position donnée.
void drv_display_draw_text_at_baseline | ( | const font_t * | font, |
uint8_t | x, | ||
uint8_t | baseline_y, | ||
const char * | txt | ||
) |
Dessine du texte aligné sur une ligne de base.
Dessine du texte aligné sur une ligne de base commune.
void drv_display_draw_text_with_font | ( | const font_t * | font, |
uint8_t | x, | ||
uint8_t | y, | ||
const char * | txt | ||
) |
Dessine une chaîne en utilisant une police spécifique.
Dessine du texte avec une police spécifique sans changer la police globale.
uint8_t * drv_display_get_buffer | ( | void | ) |
Retourne un pointeur sur le framebuffer interne.
Retourne un pointeur vers le framebuffer local (1 bit/pixel).
void drv_display_init | ( | void | ) |
Initialise l’écran OLED et configure le SSD1309.
Initialise le contrôleur OLED et le framebuffer.
void drv_display_set_font | ( | const font_t * | font | ) |
Définit la police courante utilisée pour le rendu texte.
font | Pointeur vers la structure de police à utiliser. |
void drv_display_start | ( | void | ) |
Démarre le thread d’affichage automatique.
Démarre le thread d’affichage automatique (~30 FPS).
void drv_display_update | ( | void | ) |
Transfère le contenu du framebuffer vers l’écran OLED.
À appeler périodiquement si le thread automatique n’est pas utilisé.