LibDriver SSD1351  2.0.0
SSD1351 full function driver
driver_ssd1351.h File Reference

driver ssd1351 header file More...

#include <stdint.h>
#include <stdio.h>
#include <string.h>

Go to the source code of this file.

Data Structures

struct  ssd1351_handle_s
 ssd1351 handle structure definition More...
 
struct  ssd1351_info_s
 ssd1351 information structure definition More...
 

Macros

#define SSD1351_AUTO_COLOR_CONVERT   0
 ssd1351 auto color convert definition More...
 
#define DRIVER_SSD1351_LINK_INIT(HANDLE, STRUCTURE)   memset(HANDLE, 0, sizeof(STRUCTURE))
 initialize ssd1351_handle_t structure More...
 
#define DRIVER_SSD1351_LINK_SPI_INIT(HANDLE, FUC)   (HANDLE)->spi_init = FUC
 link spi_init function More...
 
#define DRIVER_SSD1351_LINK_SPI_DEINIT(HANDLE, FUC)   (HANDLE)->spi_deinit = FUC
 link spi_deinit function More...
 
#define DRIVER_SSD1351_LINK_SPI_WRITE_COMMAND(HANDLE, FUC)   (HANDLE)->spi_write_cmd = FUC
 link spi_write_cmd function More...
 
#define DRIVER_SSD1351_LINK_COMMAND_DATA_GPIO_INIT(HANDLE, FUC)   (HANDLE)->cmd_data_gpio_init = FUC
 link cmd_data_gpio_init function More...
 
#define DRIVER_SSD1351_LINK_COMMAND_DATA_GPIO_DEINIT(HANDLE, FUC)   (HANDLE)->cmd_data_gpio_deinit = FUC
 link cmd_data_gpio_deinit function More...
 
#define DRIVER_SSD1351_LINK_COMMAND_DATA_GPIO_WRITE(HANDLE, FUC)   (HANDLE)->cmd_data_gpio_write = FUC
 link cmd_data_gpio_write function More...
 
#define DRIVER_SSD1351_LINK_RESET_GPIO_INIT(HANDLE, FUC)   (HANDLE)->reset_gpio_init = FUC
 link reset_gpio_init function More...
 
#define DRIVER_SSD1351_LINK_RESET_GPIO_DEINIT(HANDLE, FUC)   (HANDLE)->reset_gpio_deinit = FUC
 link reset_gpio_deinit function More...
 
#define DRIVER_SSD1351_LINK_RESET_GPIO_WRITE(HANDLE, FUC)   (HANDLE)->reset_gpio_write = FUC
 link reset_gpio_write function More...
 
#define DRIVER_SSD1351_LINK_DELAY_MS(HANDLE, FUC)   (HANDLE)->delay_ms = FUC
 link delay_ms function More...
 
#define DRIVER_SSD1351_LINK_DEBUG_PRINT(HANDLE, FUC)   (HANDLE)->debug_print = FUC
 link debug_print function More...
 

Typedefs

typedef struct ssd1351_handle_s ssd1351_handle_t
 ssd1351 handle structure definition More...
 
typedef struct ssd1351_info_s ssd1351_info_t
 ssd1351 information structure definition More...
 

Enumerations

enum  ssd1351_color_depth_t { SSD1351_COLOR_DEPTH_256 = 0x00 , SSD1351_COLOR_DEPTH_65K = 0x01 , SSD1351_COLOR_DEPTH_262K_1ST = 0x02 , SSD1351_COLOR_DEPTH_262K_2ND = 0x03 }
 ssd1351 color depth enumeration definition More...
 
enum  ssd1351_address_increment_t { SSD1351_ADDRESS_INCREMENT_HORIZONTAL = 0x00 , SSD1351_ADDRESS_INCREMENT_VERTICAL = 0x01 }
 ssd1351 address increment enumeration definition More...
 
enum  ssd1351_seg0_mapped_t { SSD1351_SEG0_ADDRESS_0 = 0x00 , SSD1351_SEG0_ADDRESS_127 = 0x01 }
 ssd1351 seg0 mapped enumeration definition More...
 
enum  ssd1351_color_sequence_t { SSD1351_COLOR_SEQUENCE_A_B_C = 0x00 , SSD1351_COLOR_SEQUENCE_C_B_A = 0x01 }
 ssd1351 color sequence enumeration definition More...
 
enum  ssd1351_scan_mode_t { SSD1351_SCAN_MODE_COM_0_COM_N_1 = 0x00 , SSD1351_SCAN_MODE_COM_N_1_COM_0 = 0x01 }
 ssd1351 scan mode enumeration definition More...
 
enum  ssd1351_bool_t { SSD1351_BOOL_FALSE = 0x00 , SSD1351_BOOL_TRUE = 0x01 }
 ssd1351 bool enumeration definition More...
 
enum  ssd1351_display_mode_t { SSD1351_DISPLAY_MODE_ALL_OFF = 0xA4 , SSD1351_DISPLAY_MODE_ALL_ON = 0xA5 , SSD1351_DISPLAY_MODE_NORMAL = 0xA6 , SSD1351_DISPLAY_MODE_INVERSE = 0xA7 }
 ssd1351 display mode enumeration definition More...
 
enum  ssd1351_select_vdd_t { SSD1351_SELECT_VDD_EXTERNAL = 0x00 , SSD1351_SELECT_VDD_INTERNAL = 0x01 }
 ssd1351 select vdd enumeration definition More...
 
enum  ssd1351_select_parallel_bits_t { SSD1351_SELECT_PARALLEL_8_BIT = 0x00 , SSD1351_SELECT_PARALLER_16_BIT = 0x01 , SSD1351_SELECT_PARALLER_18_BIT = 0x03 }
 ssd1351 select parallel enumeration definition More...
 
enum  ssd1351_segment_low_voltage_t { SSD1351_SEGMENT_LOW_VOLTAGE_EXTERNAL_VSL = 0x00 , SSD1351_SEGMENT_LOW_VOLTAGE_INTERNAL_VSL = 0x02 }
 ssd1351 segment low voltage enumeration definition More...
 
enum  ssd1351_gpio_pin_t { SSD1351_GPIO_PIN_INPUT_DISABLED = 0x00 , SSD1351_GPIO_PIN_INPUT_ENABLED = 0x01 , SSD1351_GPIO_PIN_OUTPUT_LOW = 0x02 , SSD1351_GPIO_PIN_OUTPUT_HIGH = 0x03 }
 ssd1351 gpio pin enumeration definition More...
 
enum  ssd1351_command_t { SSD1351_COMMAND_UNLOCK_OLED_DRIVER_IC = 0x12 , SSD1351_COMMAND_LOCK_OLED_DRIVER_IC = 0x16 , SSD1351_COMMAND_A2_B1_B3_BB_BE_INACCESSIBLE = 0xB0 , SSD1351_COMMAND_A2_B1_B3_BB_BE_ACCESSIBLE = 0xB1 }
 ssd1351 command enumeration definition More...
 
enum  ssd1351_scroll_mode_t { SSD1351_SCROLL_MODE_TEST = 0x00 , SSD1351_SCROLL_MODE_NORMAL = 0x01 , SSD1351_SCROLL_MODE_SLOW = 0x01 , SSD1351_SCROLL_MODE_SLOWEST = 0x03 }
 ssd1351 scroll mode enumeration definition More...
 
enum  ssd1351_font_t { SSD1351_FONT_12 = 0x0C , SSD1351_FONT_16 = 0x10 , SSD1351_FONT_24 = 0x18 }
 ssd1351 font size enumeration definition More...
 

Functions

uint8_t ssd1351_info (ssd1351_info_t *info)
 get chip's information More...
 
uint8_t ssd1351_init (ssd1351_handle_t *handle)
 initialize the chip More...
 
uint8_t ssd1351_deinit (ssd1351_handle_t *handle)
 close the chip More...
 
uint8_t ssd1351_clear (ssd1351_handle_t *handle)
 clear the display More...
 
uint8_t ssd1351_draw_point (ssd1351_handle_t *handle, uint8_t x, uint8_t y, uint32_t color)
 draw a point in the display More...
 
uint8_t ssd1351_write_string (ssd1351_handle_t *handle, uint8_t x, uint8_t y, char *str, uint16_t len, uint32_t color, ssd1351_font_t font)
 write a string in the display More...
 
uint8_t ssd1351_fill_rect (ssd1351_handle_t *handle, uint8_t left, uint8_t top, uint8_t right, uint8_t bottom, uint32_t color)
 fill the rect More...
 
uint8_t ssd1351_draw_picture (ssd1351_handle_t *handle, uint8_t left, uint8_t top, uint8_t right, uint8_t bottom, uint32_t *image)
 draw a picture More...
 
uint8_t ssd1351_draw_picture_16bits (ssd1351_handle_t *handle, uint8_t left, uint8_t top, uint8_t right, uint8_t bottom, uint16_t *image)
 draw a 16 bits picture More...
 
uint8_t ssd1351_set_column_address (ssd1351_handle_t *handle, uint8_t start_address, uint8_t end_address)
 set the display column address More...
 
uint8_t ssd1351_set_row_address (ssd1351_handle_t *handle, uint8_t start_address, uint8_t end_address)
 set the row address More...
 
uint8_t ssd1351_write_ram (ssd1351_handle_t *handle)
 sent the write ram command More...
 
uint8_t ssd1351_read_ram (ssd1351_handle_t *handle)
 sent the read ram command More...
 
uint8_t ssd1351_set_color_depth (ssd1351_handle_t *handle, ssd1351_color_depth_t color_depth)
 set the display color depth More...
 
uint8_t ssd1351_set_address_increment (ssd1351_handle_t *handle, ssd1351_address_increment_t increment)
 set the address increment More...
 
uint8_t ssd1351_set_seg0_map (ssd1351_handle_t *handle, ssd1351_seg0_mapped_t seg0_map)
 set the seg0 map More...
 
uint8_t ssd1351_set_color_sequence (ssd1351_handle_t *handle, ssd1351_color_sequence_t color_sequence)
 set the color sequence More...
 
uint8_t ssd1351_set_scan_mode (ssd1351_handle_t *handle, ssd1351_scan_mode_t mode)
 set the scan mode More...
 
uint8_t ssd1351_set_com_split_odd_even (ssd1351_handle_t *handle, ssd1351_bool_t enable)
 set the com split odd or even More...
 
uint8_t ssd1351_set_display_start_line (ssd1351_handle_t *handle, uint8_t l)
 set the display start line More...
 
uint8_t ssd1351_set_display_offset (ssd1351_handle_t *handle, uint8_t offset)
 set the display offset More...
 
uint8_t ssd1351_set_display_mode (ssd1351_handle_t *handle, ssd1351_display_mode_t mode)
 set the display mode More...
 
uint8_t ssd1351_set_select_vdd (ssd1351_handle_t *handle, ssd1351_select_vdd_t vdd)
 set the select vdd More...
 
uint8_t ssd1351_set_parallel_bits (ssd1351_handle_t *handle, ssd1351_select_parallel_bits_t parallel_bits)
 set the interface parallel bits More...
 
uint8_t ssd1351_set_sleep_mode (ssd1351_handle_t *handle, ssd1351_bool_t enable)
 set the sleep mode More...
 
uint8_t ssd1351_set_phase_period (ssd1351_handle_t *handle, uint8_t phase1_period, uint8_t phase2_period)
 set the phase period More...
 
uint8_t ssd1351_set_front_clock_oscillator_frequency (ssd1351_handle_t *handle, uint8_t d, uint8_t frequency)
 set the front clock oscillator frequency More...
 
uint8_t ssd1351_set_segment_low_voltage (ssd1351_handle_t *handle, ssd1351_segment_low_voltage_t segment)
 set the segment low voltage More...
 
uint8_t ssd1351_set_gpio (ssd1351_handle_t *handle, ssd1351_gpio_pin_t gpio0, ssd1351_gpio_pin_t gpio1)
 set the gpio pin More...
 
uint8_t ssd1351_set_second_pre_charge_period (ssd1351_handle_t *handle, uint8_t period)
 set the second pre charge period More...
 
uint8_t ssd1351_set_gray_scale_pulse_width (ssd1351_handle_t *handle, uint8_t gamma[63])
 set the gray scale pulse width More...
 
uint8_t ssd1351_set_use_built_in_linear_lut (ssd1351_handle_t *handle)
 use built in linear lut More...
 
uint8_t ssd1351_set_pre_charge_voltage (ssd1351_handle_t *handle, uint8_t voltage_level)
 set the pre charge voltage More...
 
uint8_t ssd1351_set_vcomh_voltage (ssd1351_handle_t *handle, uint8_t voltage_level)
 set the vcomh voltage More...
 
uint8_t ssd1351_set_contrast (ssd1351_handle_t *handle, uint8_t a, uint8_t b, uint8_t c)
 set the display contrast More...
 
uint8_t ssd1351_set_master_contrast_current (ssd1351_handle_t *handle, uint8_t current)
 set the master contrast current More...
 
uint8_t ssd1351_set_mux_ratio (ssd1351_handle_t *handle, uint8_t ratio)
 set the mux ratio More...
 
uint8_t ssd1351_set_command (ssd1351_handle_t *handle, ssd1351_command_t command)
 set the command More...
 
uint8_t ssd1351_set_scroll (ssd1351_handle_t *handle, int8_t scroll, uint8_t start_row, uint8_t row_len, ssd1351_scroll_mode_t mode)
 set the scroll More...
 
uint8_t ssd1351_start_moving (ssd1351_handle_t *handle)
 start the display moving More...
 
uint8_t ssd1351_stop_moving (ssd1351_handle_t *handle)
 stop the display moving More...
 
uint8_t ssd1351_write_cmd (ssd1351_handle_t *handle, uint8_t cmd)
 write the command More...
 
uint8_t ssd1351_write_data (ssd1351_handle_t *handle, uint8_t data)
 write the data More...
 

Detailed Description

driver ssd1351 header file

Copyright (c) 2015 - present LibDriver All rights reserved

The MIT License (MIT)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Version
2.0.0
Author
Shifeng Li
Date
2021-04-08

history

Date Version Author Description
2021/04/08 2.0 Shifeng Li format the code
2020/12/18 1.0 Shifeng Li first upload

Definition in file driver_ssd1351.h.