LibDriver SSD1315
Loading...
Searching...
No Matches
driver_ssd1315.h
Go to the documentation of this file.
1
36
37#ifndef DRIVER_SSD1315_H
38#define DRIVER_SSD1315_H
39
40#include <stdint.h>
41#include <stdio.h>
42#include <string.h>
43
44#ifdef __cplusplus
45extern "C"{
46#endif
47
53
58
67
76
86
96
105
120
129
139
148
157
166
175
184
193
202
211
221
230
239
243typedef enum
244{
249
253typedef struct ssd1315_handle_s
254{
255 uint8_t (*iic_init)(void);
256 uint8_t (*iic_deinit)(void);
257 uint8_t (*iic_write)(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len);
258 uint8_t (*spi_init)(void);
259 uint8_t (*spi_deinit)(void);
260 uint8_t (*spi_write_cmd)(uint8_t *buf, uint16_t len);
261 uint8_t (*spi_cmd_data_gpio_init)(void);
262 uint8_t (*spi_cmd_data_gpio_deinit)(void);
263 uint8_t (*spi_cmd_data_gpio_write)(uint8_t value);
264 uint8_t (*reset_gpio_init)(void);
265 uint8_t (*reset_gpio_deinit)(void);
266 uint8_t (*reset_gpio_write)(uint8_t value);
267 void (*debug_print)(const char *const fmt, ...);
268 void (*delay_ms)(uint32_t ms);
269 uint8_t inited;
270 uint8_t iic_addr;
271 uint8_t iic_spi;
272 uint8_t gram[128][8];
274
290
294
301
308#define DRIVER_SSD1315_LINK_INIT(HANDLE, STRUCTURE) memset(HANDLE, 0, sizeof(STRUCTURE))
309
316#define DRIVER_SSD1315_LINK_IIC_INIT(HANDLE, FUC) (HANDLE)->iic_init = FUC
317
324#define DRIVER_SSD1315_LINK_IIC_DEINIT(HANDLE, FUC) (HANDLE)->iic_deinit = FUC
325
332#define DRIVER_SSD1315_LINK_IIC_WRITE(HANDLE, FUC) (HANDLE)->iic_write = FUC
333
340#define DRIVER_SSD1315_LINK_SPI_INIT(HANDLE, FUC) (HANDLE)->spi_init = FUC
341
348#define DRIVER_SSD1315_LINK_SPI_DEINIT(HANDLE, FUC) (HANDLE)->spi_deinit = FUC
349
356#define DRIVER_SSD1315_LINK_SPI_WRITE_COMMAND(HANDLE, FUC) (HANDLE)->spi_write_cmd = FUC
357
364#define DRIVER_SSD1315_LINK_SPI_COMMAND_DATA_GPIO_INIT(HANDLE, FUC) (HANDLE)->spi_cmd_data_gpio_init = FUC
365
372#define DRIVER_SSD1315_LINK_SPI_COMMAND_DATA_GPIO_DEINIT(HANDLE, FUC) (HANDLE)->spi_cmd_data_gpio_deinit = FUC
373
380#define DRIVER_SSD1315_LINK_SPI_COMMAND_DATA_GPIO_WRITE(HANDLE, FUC) (HANDLE)->spi_cmd_data_gpio_write = FUC
381
388#define DRIVER_SSD1315_LINK_RESET_GPIO_INIT(HANDLE, FUC) (HANDLE)->reset_gpio_init = FUC
389
396#define DRIVER_SSD1315_LINK_RESET_GPIO_DEINIT(HANDLE, FUC) (HANDLE)->reset_gpio_deinit = FUC
397
404#define DRIVER_SSD1315_LINK_RESET_GPIO_WRITE(HANDLE, FUC) (HANDLE)->reset_gpio_write = FUC
405
412#define DRIVER_SSD1315_LINK_DELAY_MS(HANDLE, FUC) (HANDLE)->delay_ms = FUC
413
420#define DRIVER_SSD1315_LINK_DEBUG_PRINT(HANDLE, FUC) (HANDLE)->debug_print = FUC
421
425
432
441uint8_t ssd1315_info(ssd1315_info_t *info);
442
453
464
475
486
500uint8_t ssd1315_init(ssd1315_handle_t *handle);
501
516uint8_t ssd1315_deinit(ssd1315_handle_t *handle);
517
528uint8_t ssd1315_clear(ssd1315_handle_t *handle);
529
541
556uint8_t ssd1315_write_point(ssd1315_handle_t *handle, uint8_t x, uint8_t y, uint8_t data);
557
572uint8_t ssd1315_read_point(ssd1315_handle_t *handle, uint8_t x, uint8_t y, uint8_t *data);
573
588uint8_t ssd1315_gram_write_point(ssd1315_handle_t *handle, uint8_t x, uint8_t y, uint8_t data);
589
604uint8_t ssd1315_gram_read_point(ssd1315_handle_t *handle, uint8_t x, uint8_t y, uint8_t *data);
605
623uint8_t ssd1315_gram_write_string(ssd1315_handle_t *handle, uint8_t x, uint8_t y, char *str, uint16_t len, uint8_t color, ssd1315_font_t font);
624
643uint8_t ssd1315_gram_fill_rect(ssd1315_handle_t *handle, uint8_t left, uint8_t top, uint8_t right, uint8_t bottom, uint8_t color);
644
663uint8_t ssd1315_gram_draw_picture(ssd1315_handle_t *handle, uint8_t left, uint8_t top, uint8_t right, uint8_t bottom, uint8_t *img);
664
677uint8_t ssd1315_set_low_column_start_address(ssd1315_handle_t *handle, uint8_t addr);
678
691uint8_t ssd1315_set_high_column_start_address(ssd1315_handle_t *handle, uint8_t addr);
692
705
720uint8_t ssd1315_set_column_address_range(ssd1315_handle_t *handle, uint8_t start_addr, uint8_t end_addr);
721
736uint8_t ssd1315_set_page_address_range(ssd1315_handle_t *handle, uint8_t start_addr, uint8_t end_addr);
737
752
768uint8_t ssd1315_set_right_horizontal_scroll(ssd1315_handle_t *handle, uint8_t start_page_addr, uint8_t end_page_addr,
770
786uint8_t ssd1315_set_left_horizontal_scroll(ssd1315_handle_t *handle, uint8_t start_page_addr, uint8_t end_page_addr,
788
813 uint8_t start_page_addr, uint8_t end_page_addr,
814 uint8_t vertical_scrolling_offset, ssd1315_scroll_frame_t frames,
815 uint8_t start_column_addr, uint8_t end_column_addr);
816
841 uint8_t start_page_addr, uint8_t end_page_addr,
842 uint8_t vertical_scrolling_offset, ssd1315_scroll_frame_t frames,
843 uint8_t start_column_addr, uint8_t end_column_addr);
844
856
868
881uint8_t ssd1315_set_display_start_line(ssd1315_handle_t *handle, uint8_t l);
882
894uint8_t ssd1315_set_contrast(ssd1315_handle_t *handle, uint8_t contrast);
895
909
922
938uint8_t ssd1315_set_vertical_scroll_area(ssd1315_handle_t *handle, uint8_t start_row, uint8_t end_row);
939
952
965
979uint8_t ssd1315_set_multiplex_ratio(ssd1315_handle_t *handle, uint8_t multiplex);
980
993
1006uint8_t ssd1315_set_page_address(ssd1315_handle_t *handle, uint8_t addr);
1007
1020
1033uint8_t ssd1315_set_display_offset(ssd1315_handle_t *handle, uint8_t offset);
1034
1049uint8_t ssd1315_set_display_clock(ssd1315_handle_t *handle, uint8_t oscillator_frequency, uint8_t clock_divide);
1050
1063
1078uint8_t ssd1315_set_precharge_period(ssd1315_handle_t *handle, uint8_t phase1_period, uint8_t phase2_period);
1079
1093
1106
1120
1139uint8_t ssd1315_set_right_horizontal_scroll_one_column(ssd1315_handle_t *handle, uint8_t start_page, uint8_t end_page,
1140 uint8_t start_column_addr, uint8_t end_column_addr);
1141
1160uint8_t ssd1315_set_left_horizontal_scroll_one_column(ssd1315_handle_t *handle, uint8_t start_page, uint8_t end_page,
1161 uint8_t start_column_addr, uint8_t end_column_addr);
1162
1166
1173
1186uint8_t ssd1315_write_cmd(ssd1315_handle_t *handle, uint8_t *buf, uint8_t len);
1187
1200uint8_t ssd1315_write_data(ssd1315_handle_t *handle, uint8_t *buf, uint8_t len);
1201
1205
1209
1210#ifdef __cplusplus
1211}
1212#endif
1213
1214#endif
uint8_t ssd1315_gram_write_point(ssd1315_handle_t *handle, uint8_t x, uint8_t y, uint8_t data)
write a point in the gram
uint8_t ssd1315_clear(ssd1315_handle_t *handle)
clear the screen
uint8_t ssd1315_set_entire_display(ssd1315_handle_t *handle, ssd1315_entire_display_t enable)
enable or disable the entire display
ssd1315_fade_blinking_mode_t
ssd1315 fade blinking mode enumeration definition
ssd1315_iref_value_t
ssd1315 iref value enumeration definition
uint8_t ssd1315_set_vertical_scroll_area(ssd1315_handle_t *handle, uint8_t start_row, uint8_t end_row)
set the vertical scroll area
ssd1315_interface_t
ssd1315 interface enumeration definition
uint8_t ssd1315_gram_read_point(ssd1315_handle_t *handle, uint8_t x, uint8_t y, uint8_t *data)
read a point from the gram
uint8_t ssd1315_set_zoom_in(ssd1315_handle_t *handle, ssd1315_zoom_in_t zoom)
set the display zoom in
uint8_t ssd1315_set_memory_addressing_mode(ssd1315_handle_t *handle, ssd1315_memory_addressing_mode_t mode)
set the memory addressing mode
ssd1315_scan_direction_t
ssd1315 scan direction enumeration definition
uint8_t ssd1315_set_left_horizontal_scroll(ssd1315_handle_t *handle, uint8_t start_page_addr, uint8_t end_page_addr, ssd1315_scroll_frame_t frames)
set the left horizontal scroll
uint8_t ssd1315_set_left_horizontal_scroll_one_column(ssd1315_handle_t *handle, uint8_t start_page, uint8_t end_page, uint8_t start_column_addr, uint8_t end_column_addr)
set left horizontal scroll by one column
uint8_t ssd1315_set_display_mode(ssd1315_handle_t *handle, ssd1315_display_mode_t mode)
set the display mode
uint8_t ssd1315_read_point(ssd1315_handle_t *handle, uint8_t x, uint8_t y, uint8_t *data)
read a point
uint8_t ssd1315_init(ssd1315_handle_t *handle)
initialize the chip
uint8_t ssd1315_deactivate_scroll(ssd1315_handle_t *handle)
deactivate the scroll
ssd1315_display_mode_t
ssd1315 display mode enumeration definition
ssd1315_memory_addressing_mode_t
ssd1315 memory addressing mode enumeration definition
uint8_t ssd1315_set_multiplex_ratio(ssd1315_handle_t *handle, uint8_t multiplex)
set the multiplex ratio
uint8_t ssd1315_set_display_start_line(ssd1315_handle_t *handle, uint8_t l)
set the display start line
uint8_t ssd1315_set_segment_remap(ssd1315_handle_t *handle, ssd1315_segment_column_remap_t remap)
set the segment remap
uint8_t ssd1315_set_display(ssd1315_handle_t *handle, ssd1315_display_t on_off)
enable or disable the display
uint8_t ssd1315_set_interface(ssd1315_handle_t *handle, ssd1315_interface_t interface)
set the chip interface
uint8_t ssd1315_get_addr_pin(ssd1315_handle_t *handle, ssd1315_address_t *addr_pin)
get the chip iic address
uint8_t ssd1315_set_iref(ssd1315_handle_t *handle, ssd1315_iref_t enable, ssd1315_iref_value_t iref)
set iref
uint8_t ssd1315_set_charge_pump(ssd1315_handle_t *handle, ssd1315_charge_pump_t enable, ssd1315_charge_pump_mode_t mode)
enable or disable the charge pump
uint8_t ssd1315_gram_fill_rect(ssd1315_handle_t *handle, uint8_t left, uint8_t top, uint8_t right, uint8_t bottom, uint8_t color)
fill a rectangle in the gram
uint8_t ssd1315_set_vertical_right_horizontal_scroll(ssd1315_handle_t *handle, ssd1315_horizontal_scroll_t enable, uint8_t start_page_addr, uint8_t end_page_addr, uint8_t vertical_scrolling_offset, ssd1315_scroll_frame_t frames, uint8_t start_column_addr, uint8_t end_column_addr)
set the vertical right horizontal scroll
struct ssd1315_handle_s ssd1315_handle_t
ssd1315 handle structure definition
uint8_t ssd1315_set_precharge_period(ssd1315_handle_t *handle, uint8_t phase1_period, uint8_t phase2_period)
set the pre charge period
ssd1315_scroll_frame_t
ssd1315 scroll frame enumeration definition
uint8_t ssd1315_set_scan_direction(ssd1315_handle_t *handle, ssd1315_scan_direction_t dir)
set the scan direction
ssd1315_pin_conf_t
ssd1315 pin conf enumeration definition
uint8_t ssd1315_set_right_horizontal_scroll(ssd1315_handle_t *handle, uint8_t start_page_addr, uint8_t end_page_addr, ssd1315_scroll_frame_t frames)
set the right horizontal scroll
uint8_t ssd1315_set_display_clock(ssd1315_handle_t *handle, uint8_t oscillator_frequency, uint8_t clock_divide)
set the display clock
ssd1315_deselect_level_t
ssd1315 deselect level enumeration definition
uint8_t ssd1315_set_page_address_range(ssd1315_handle_t *handle, uint8_t start_addr, uint8_t end_addr)
set the page address range
uint8_t ssd1315_gram_write_string(ssd1315_handle_t *handle, uint8_t x, uint8_t y, char *str, uint16_t len, uint8_t color, ssd1315_font_t font)
draw a string in the gram
uint8_t ssd1315_set_fade_blinking_mode(ssd1315_handle_t *handle, ssd1315_fade_blinking_mode_t mode, uint8_t frames)
set the fade blinking mode
uint8_t ssd1315_set_high_column_start_address(ssd1315_handle_t *handle, uint8_t addr)
set the high column start address
uint8_t ssd1315_activate_scroll(ssd1315_handle_t *handle)
activate the scroll
uint8_t ssd1315_set_low_column_start_address(ssd1315_handle_t *handle, uint8_t addr)
set the low column start address
ssd1315_font_t
ssd1315 font enumeration definition
ssd1315_zoom_in_t
ssd1315 zoom in enumeration definition
uint8_t ssd1315_info(ssd1315_info_t *info)
get chip's information
uint8_t ssd1315_set_display_offset(ssd1315_handle_t *handle, uint8_t offset)
set the display offset
ssd1315_charge_pump_t
ssd1315 charge pump enumeration definition
uint8_t ssd1315_set_addr_pin(ssd1315_handle_t *handle, ssd1315_address_t addr_pin)
set the chip iic address
ssd1315_left_right_remap_t
ssd1315 left right remap enumeration definition
uint8_t ssd1315_set_right_horizontal_scroll_one_column(ssd1315_handle_t *handle, uint8_t start_page, uint8_t end_page, uint8_t start_column_addr, uint8_t end_column_addr)
set right horizontal scroll by one column
uint8_t ssd1315_write_point(ssd1315_handle_t *handle, uint8_t x, uint8_t y, uint8_t data)
write a point
uint8_t ssd1315_get_interface(ssd1315_handle_t *handle, ssd1315_interface_t *interface)
get the chip interface
uint8_t ssd1315_gram_update(ssd1315_handle_t *handle)
update the gram data
ssd1315_address_t
ssd1315 address pin enumeration definition
uint8_t ssd1315_set_contrast(ssd1315_handle_t *handle, uint8_t contrast)
set the display contrast
struct ssd1315_info_s ssd1315_info_t
ssd1315 information structure definition
ssd1315_segment_column_remap_t
ssd1315 segment column remap enumeration definition
uint8_t ssd1315_set_vertical_left_horizontal_scroll(ssd1315_handle_t *handle, ssd1315_horizontal_scroll_t enable, uint8_t start_page_addr, uint8_t end_page_addr, uint8_t vertical_scrolling_offset, ssd1315_scroll_frame_t frames, uint8_t start_column_addr, uint8_t end_column_addr)
set the vertical left horizontal scroll
uint8_t ssd1315_set_com_pins_hardware_conf(ssd1315_handle_t *handle, ssd1315_pin_conf_t conf, ssd1315_left_right_remap_t remap)
set the hardware com pins
ssd1315_display_t
ssd1315 display enumeration definition
uint8_t ssd1315_deinit(ssd1315_handle_t *handle)
close the chip
uint8_t ssd1315_set_page_address(ssd1315_handle_t *handle, uint8_t addr)
set the page address
uint8_t ssd1315_gram_draw_picture(ssd1315_handle_t *handle, uint8_t left, uint8_t top, uint8_t right, uint8_t bottom, uint8_t *img)
draw a picture in the gram
uint8_t ssd1315_set_deselect_level(ssd1315_handle_t *handle, ssd1315_deselect_level_t level)
set the deselect level
ssd1315_horizontal_scroll_t
ssd1315 horizontal scroll enumeration definition
ssd1315_entire_display_t
ssd1315 entire display enumeration definition
ssd1315_iref_t
ssd1315 iref enumeration definition
uint8_t ssd1315_set_column_address_range(ssd1315_handle_t *handle, uint8_t start_addr, uint8_t end_addr)
set the column address range
ssd1315_charge_pump_mode_t
ssd1315 charge pump mode enumeration definition
@ SSD1315_FADE_BLINKING_MODE_BLINKING
@ SSD1315_FADE_BLINKING_MODE_DISABLE
@ SSD1315_FADE_BLINKING_MODE_FADE_OUT
@ SSD1315_IREF_VALUE_19UA_150UA
@ SSD1315_IREF_VALUE_30UA_240UA
@ SSD1315_INTERFACE_IIC
@ SSD1315_INTERFACE_SPI
@ SSD1315_SCAN_DIRECTION_COMN_1_START
@ SSD1315_SCAN_DIRECTION_COM0_START
@ SSD1315_DISPLAY_MODE_INVERSE
@ SSD1315_DISPLAY_MODE_NORMAL
@ SSD1315_MEMORY_ADDRESSING_MODE_VERTICAL
@ SSD1315_MEMORY_ADDRESSING_MODE_HORIZONTAL
@ SSD1315_MEMORY_ADDRESSING_MODE_PAGE
@ SSD1315_SCROLL_FRAME_5
@ SSD1315_SCROLL_FRAME_4
@ SSD1315_SCROLL_FRAME_128
@ SSD1315_SCROLL_FRAME_64
@ SSD1315_SCROLL_FRAME_6
@ SSD1315_SCROLL_FRAME_2
@ SSD1315_SCROLL_FRAME_3
@ SSD1315_SCROLL_FRAME_32
@ SSD1315_PIN_CONF_ALTERNATIVE
@ SSD1315_PIN_CONF_SEQUENTIAL
@ SSD1315_DESELECT_LEVEL_0P77
@ SSD1315_DESELECT_LEVEL_0P83
@ SSD1315_DESELECT_LEVEL_0P65
@ SSD1315_FONT_16
@ SSD1315_FONT_24
@ SSD1315_FONT_12
@ SSD1315_ZOOM_IN_DISABLE
@ SSD1315_ZOOM_IN_ENABLE
@ SSD1315_CHARGE_PUMP_ENABLE
@ SSD1315_CHARGE_PUMP_DISABLE
@ SSD1315_LEFT_RIGHT_REMAP_ENABLE
@ SSD1315_LEFT_RIGHT_REMAP_DISABLE
@ SSD1315_ADDR_SA0_0
@ SSD1315_ADDR_SA0_1
@ SSD1315_SEGMENT_COLUMN_ADDRESS_0
@ SSD1315_SEGMENT_COLUMN_ADDRESS_127
@ SSD1315_DISPLAY_ON
@ SSD1315_DISPLAY_OFF
@ SSD1315_HORIZONTAL_SCROLL_ENABLE
@ SSD1315_HORIZONTAL_SCROLL_DISABLE
@ SSD1315_ENTIRE_DISPLAY_OFF
@ SSD1315_ENTIRE_DISPLAY_ON
@ SSD1315_IREF_DISABLE
@ SSD1315_IREF_ENABLE
@ SSD1315_CHARGE_PUMP_MODE_7P5V
@ SSD1315_CHARGE_PUMP_MODE_8P5V
@ SSD1315_CHARGE_PUMP_MODE_9P0V
uint8_t ssd1315_write_data(ssd1315_handle_t *handle, uint8_t *buf, uint8_t len)
write the register data
uint8_t ssd1315_write_cmd(ssd1315_handle_t *handle, uint8_t *buf, uint8_t len)
write the register command
ssd1315 handle structure definition
uint8_t(* spi_init)(void)
void(* delay_ms)(uint32_t ms)
uint8_t(* spi_cmd_data_gpio_deinit)(void)
uint8_t(* reset_gpio_deinit)(void)
void(* debug_print)(const char *const fmt,...)
uint8_t(* iic_init)(void)
uint8_t(* spi_deinit)(void)
uint8_t(* reset_gpio_init)(void)
uint8_t(* spi_cmd_data_gpio_init)(void)
uint8_t gram[128][8]
uint8_t(* spi_write_cmd)(uint8_t *buf, uint16_t len)
uint8_t(* iic_write)(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
uint8_t(* spi_cmd_data_gpio_write)(uint8_t value)
uint8_t(* reset_gpio_write)(uint8_t value)
uint8_t(* iic_deinit)(void)
ssd1315 information structure definition
uint32_t driver_version
char manufacturer_name[32]