27 #include <libopencm3/stm32/i2c.h> 35 #define OLED_SSD1306_SLAVE 0x3c 40 #define OLED_SSD1306_I2C I2C1 43 bool oled_ssd1306_setup(void) 46 const uint8_t oled_init[] = {
73 const uint8_t oled_display_on[] = {
82 const uint8_t oled_display_off[] = {
91 const uint8_t oled_entire_display_on[] = {
99 const uint8_t oled_entire_display_ram[] = {
109 if (0==display_length || NULL==display_data) {
113 const uint8_t oled_start_page[] = {
126 const uint8_t oled_data[] = {
library to communicate using I2C as master (API)
enum i2c_master_rc i2c_master_stop(uint32_t i2c)
sent stop condition
enum i2c_master_rc i2c_master_select_slave(uint32_t i2c, uint16_t slave, bool address_10bit, bool write)
select I2C slave device
void oled_ssd1306_on(void)
switch OLED display on
enum i2c_master_rc i2c_master_start(uint32_t i2c)
send start condition
#define OLED_SSD1306_I2C
I2C peripheral.
global definitions and methods (API)
void oled_ssd1306_off(void)
switch OLED display off
enum i2c_master_rc i2c_master_write(uint32_t i2c, const uint8_t *data, size_t data_size)
write data over I2C
void oled_ssd1306_test(void)
test OLED display: switch entire screen on for a brief time
void i2c_master_setup(uint32_t i2c, uint16_t frequency)
setup I2C peripheral
void oled_ssd1306_display(const uint8_t *display_data, uint16_t display_length)
send data to display to OLED display
void sleep_ms(uint32_t duration)
go to sleep for some milliseconds
enum i2c_master_rc i2c_master_slave_write(uint32_t i2c, uint16_t slave, bool address_10bit, const uint8_t *data, size_t data_size)
write data to slave device
#define OLED_SSD1306_SLAVE
SSD1306 OLED display I2C slave address.
#define LENGTH(x)
get the length of an array
SSD1306 OLED library (API)