LibDriver SSD1681
Loading...
Searching...
No Matches
driver_ssd1681.h
Go to the documentation of this file.
1
36
37#ifndef DRIVER_SSD1681_H
38#define DRIVER_SSD1681_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
62#ifndef SSD1681_BUSY_MAX_DELAY_MS
63 #define SSD1681_BUSY_MAX_DELAY_MS 10
64#endif
65
69#ifndef SSD1681_BUSY_MAX_RETRY_TIMES
70 #define SSD1681_BUSY_MAX_RETRY_TIMES 2000
71#endif
72
76typedef enum
77{
81
109
113typedef enum
114{
222
254
269
288
299
309
320
329
341
350
360
379
415
424
435
446
455
466
475
484
497
510
519
523typedef enum
524{
529
533typedef struct ssd1681_handle_s
534{
535 uint8_t (*spi_init)(void);
536 uint8_t (*spi_deinit)(void);
537 uint8_t (*spi_write_cmd)(uint8_t *buf, uint16_t len);
538 uint8_t (*spi_read_cmd)(uint8_t *buf, uint16_t len);
539 uint8_t (*spi_cmd_data_gpio_init)(void);
540 uint8_t (*spi_cmd_data_gpio_deinit)(void);
541 uint8_t (*spi_cmd_data_gpio_write)(uint8_t value);
542 uint8_t (*reset_gpio_init)(void);
543 uint8_t (*reset_gpio_deinit)(void);
544 uint8_t (*reset_gpio_write)(uint8_t value);
545 uint8_t (*busy_gpio_init)(void);
546 uint8_t (*busy_gpio_deinit)(void);
547 uint8_t (*busy_gpio_read)(uint8_t *value);
548 void (*debug_print)(const char *const fmt, ...);
549 void (*delay_ms)(uint32_t ms);
550 uint8_t inited;
551 uint8_t black_gram[200][25];
552 uint8_t red_gram[200][25];
554
570
574
581
588#define DRIVER_SSD1681_LINK_INIT(HANDLE, STRUCTURE) memset(HANDLE, 0, sizeof(STRUCTURE))
589
596#define DRIVER_SSD1681_LINK_SPI_INIT(HANDLE, FUC) (HANDLE)->spi_init = FUC
597
604#define DRIVER_SSD1681_LINK_SPI_DEINIT(HANDLE, FUC) (HANDLE)->spi_deinit = FUC
605
612#define DRIVER_SSD1681_LINK_SPI_WRITE_CMD(HANDLE, FUC) (HANDLE)->spi_write_cmd = FUC
613
620#define DRIVER_SSD1681_LINK_SPI_READ_CMD(HANDLE, FUC) (HANDLE)->spi_read_cmd = FUC
621
628#define DRIVER_SSD1681_LINK_SPI_CMD_DATA_GPIO_INIT(HANDLE, FUC) (HANDLE)->spi_cmd_data_gpio_init = FUC
629
636#define DRIVER_SSD1681_LINK_SPI_CMD_DATA_GPIO_DEINIT(HANDLE, FUC) (HANDLE)->spi_cmd_data_gpio_deinit = FUC
637
644#define DRIVER_SSD1681_LINK_SPI_CMD_DATA_GPIO_WRITE(HANDLE, FUC) (HANDLE)->spi_cmd_data_gpio_write = FUC
645
652#define DRIVER_SSD1681_LINK_RESET_GPIO_INIT(HANDLE, FUC) (HANDLE)->reset_gpio_init = FUC
653
660#define DRIVER_SSD1681_LINK_RESET_GPIO_DEINIT(HANDLE, FUC) (HANDLE)->reset_gpio_deinit = FUC
661
668#define DRIVER_SSD1681_LINK_RESET_GPIO_WRITE(HANDLE, FUC) (HANDLE)->reset_gpio_write = FUC
669
676#define DRIVER_SSD1681_LINK_BUSY_GPIO_INIT(HANDLE, FUC) (HANDLE)->busy_gpio_init = FUC
677
684#define DRIVER_SSD1681_LINK_BUSY_GPIO_DEINIT(HANDLE, FUC) (HANDLE)->busy_gpio_deinit = FUC
685
692#define DRIVER_SSD1681_LINK_BUSY_GPIO_READ(HANDLE, FUC) (HANDLE)->busy_gpio_read = FUC
693
700#define DRIVER_SSD1681_LINK_DELAY_MS(HANDLE, FUC) (HANDLE)->delay_ms = FUC
701
708#define DRIVER_SSD1681_LINK_DEBUG_PRINT(HANDLE, FUC) (HANDLE)->debug_print = FUC
709
713
720
729uint8_t ssd1681_info(ssd1681_info_t *info);
730
743uint8_t ssd1681_init(ssd1681_handle_t *handle);
744
759uint8_t ssd1681_deinit(ssd1681_handle_t *handle);
760
772uint8_t ssd1681_clear(ssd1681_handle_t *handle, ssd1681_color_t color);
773
786
799
815uint8_t ssd1681_gram_write_point(ssd1681_handle_t *handle, ssd1681_color_t color, uint8_t x, uint8_t y, uint8_t data);
816
832uint8_t ssd1681_gram_read_point(ssd1681_handle_t *handle, ssd1681_color_t color, uint8_t x, uint8_t y, uint8_t *data);
833
852uint8_t ssd1681_gram_write_string(ssd1681_handle_t *handle, ssd1681_color_t color, uint8_t x, uint8_t y, char *str, uint16_t len, uint8_t data, ssd1681_font_t font);
853
873uint8_t ssd1681_gram_fill_rect(ssd1681_handle_t *handle, ssd1681_color_t color, uint8_t left, uint8_t top, uint8_t right, uint8_t bottom, uint8_t data);
874
894uint8_t ssd1681_gram_draw_picture(ssd1681_handle_t *handle, ssd1681_color_t color, uint8_t left, uint8_t top, uint8_t right, uint8_t bottom, uint8_t *img);
895
912
925
940
952
964uint8_t ssd1681_otp_initial_write(ssd1681_handle_t *handle, uint8_t param[4]);
965
977
989
1001uint8_t ssd1681_otp_read_register(ssd1681_handle_t *handle, uint8_t param[11]);
1002
1014
1026
1038
1050uint8_t ssd1681_otp_write_register(ssd1681_handle_t *handle, uint8_t param[11]);
1051
1064
1080 uint8_t phase1, uint8_t phase2,
1081 uint8_t phase3, uint8_t duration);
1082
1094uint8_t ssd1681_set_mode(ssd1681_handle_t *handle, ssd1681_mode_t mode);
1095
1109
1121
1138uint8_t ssd1681_set_hv_ready_detection(ssd1681_handle_t *handle, uint8_t cool_down_duration, uint8_t cool_down_loop_num);
1139
1152
1165
1178uint8_t ssd1681_write_temperature_sensor(ssd1681_handle_t *handle, uint16_t control);
1179
1191uint8_t ssd1681_read_temperature_sensor(ssd1681_handle_t *handle, uint16_t *control);
1192
1204uint8_t ssd1681_write_temperature_sensor_ext(ssd1681_handle_t *handle, uint8_t param[3]);
1205
1217
1231
1244
1256
1267uint8_t ssd1681_set_red_ram(ssd1681_handle_t *handle);
1268
1279uint8_t ssd1681_get_ram(ssd1681_handle_t *handle);
1280
1292
1304uint8_t ssd1681_set_vcom_sense_duration(ssd1681_handle_t *handle, uint8_t duration);
1305
1317
1330
1342uint8_t ssd1681_get_user_id(ssd1681_handle_t *handle, uint8_t id[10]);
1343
1355uint8_t ssd1681_get_status(ssd1681_handle_t *handle, uint8_t *status);
1356
1369uint8_t ssd1681_set_lut_register(ssd1681_handle_t *handle, uint8_t *reg, uint16_t len);
1370
1382
1394uint8_t ssd1681_get_crc_status(ssd1681_handle_t *handle, uint16_t *status);
1395
1407uint8_t ssd1681_set_user_id(ssd1681_handle_t *handle, uint8_t id[10]);
1408
1425
1438
1451
1466uint8_t ssd1681_set_ram_x(ssd1681_handle_t *handle, uint8_t start, uint8_t end);
1467
1480uint8_t ssd1681_set_ram_y(ssd1681_handle_t *handle, uint16_t start, uint16_t end);
1481
1495
1509
1522uint8_t ssd1681_set_ram_x_address_counter(ssd1681_handle_t *handle, uint8_t cnt);
1523
1536uint8_t ssd1681_set_ram_y_address_counter(ssd1681_handle_t *handle, uint16_t cnt);
1537
1548uint8_t ssd1681_nop(ssd1681_handle_t *handle);
1549
1553
1560
1573uint8_t ssd1681_write_cmd(ssd1681_handle_t *handle, uint8_t *buf, uint8_t len);
1574
1587uint8_t ssd1681_write_data(ssd1681_handle_t *handle, uint8_t *buf, uint8_t len);
1588
1601uint8_t ssd1681_read_data(ssd1681_handle_t *handle, uint8_t *buf, uint8_t len);
1602
1606
1610
1611#ifdef __cplusplus
1612}
1613#endif
1614
1615#endif
uint8_t ssd1681_otp_program_selection(ssd1681_handle_t *handle)
program otp selection
ssd1681_step_width_t
ssd1681 step width enumeration definition
uint8_t ssd1681_deinit(ssd1681_handle_t *handle)
close the chip
ssd1681_driving_strength_t
ssd1681 driving strength enumeration definition
uint8_t ssd1681_set_display_sequence(ssd1681_handle_t *handle, ssd1681_display_sequence_t sequence)
set the display sequence
uint8_t ssd1681_write_temperature_sensor(ssd1681_handle_t *handle, uint16_t control)
write the temperature sensor
uint8_t ssd1681_init(ssd1681_handle_t *handle)
initialize the chip
ssd1681_min_off_time_t
ssd1681 min off time enumeration definition
uint8_t ssd1681_get_ram(ssd1681_handle_t *handle)
get the ram
struct ssd1681_info_s ssd1681_info_t
ssd1681 information structure definition
uint8_t ssd1681_set_ram_y_address_counter(ssd1681_handle_t *handle, uint16_t cnt)
set the ram y address counter
struct ssd1681_handle_s ssd1681_handle_t
ssd1681 handle structure definition
uint8_t ssd1681_set_lut_register(ssd1681_handle_t *handle, uint8_t *reg, uint16_t len)
set the lut register
uint8_t ssd1681_otp_initial_read(ssd1681_handle_t *handle)
read register for initial code setting
uint8_t ssd1681_set_user_id(ssd1681_handle_t *handle, uint8_t id[10])
set the user id
uint8_t ssd1681_set_red_ram(ssd1681_handle_t *handle)
set the red ram
ssd1681_step_height_t
ssd1681 step height enumeration definition
uint8_t ssd1681_set_vcom_sense_duration(ssd1681_handle_t *handle, uint8_t duration)
set the vcom sense duration
uint8_t ssd1681_otp_load_waveform(ssd1681_handle_t *handle)
load otp of waveform setting
uint8_t ssd1681_otp_read_register(ssd1681_handle_t *handle, uint8_t param[11])
otp register read for display option
ssd1681_otp_mode_t
ssd1681 otp mode enumeration definition
uint8_t ssd1681_get_user_id(ssd1681_handle_t *handle, uint8_t id[10])
get the user id
uint8_t ssd1681_read_temperature_sensor(ssd1681_handle_t *handle, uint16_t *control)
read the temperature sensor
uint8_t ssd1681_write_temperature_sensor_ext(ssd1681_handle_t *handle, uint8_t param[3])
write command to external temperature sensor
uint8_t ssd1681_set_vcom_control_reg(ssd1681_handle_t *handle)
write register for vcom control
ssd1681_end_opt_t
ssd1681 end opt enumeration definition
ssd1681_color_t
ssd1681 color enumeration definition
uint8_t ssd1681_set_master_activate(ssd1681_handle_t *handle)
master activate
ssd1681_vbd_fix_level_t
ssd1681 vbd fix level enumeration definition
uint8_t ssd1681_set_driver_output(ssd1681_handle_t *handle, uint16_t mux, ssd1681_bool_t gd, ssd1681_bool_t sm, ssd1681_bool_t tb)
set the driver output
uint8_t ssd1681_gram_draw_picture(ssd1681_handle_t *handle, ssd1681_color_t color, uint8_t left, uint8_t top, uint8_t right, uint8_t bottom, uint8_t *img)
draw a picture in the gram
uint8_t ssd1681_gram_write_string(ssd1681_handle_t *handle, ssd1681_color_t color, uint8_t x, uint8_t y, char *str, uint16_t len, uint8_t data, ssd1681_font_t font)
draw a string in the gram
uint8_t ssd1681_gram_clear(ssd1681_handle_t *handle, ssd1681_color_t color)
clear the screen in the gram
ssd1681_bool_t
ssd1681 bool enumeration definition
ssd1681_address_direction_t
ssd1681 address direction enumeration definition
uint8_t ssd1681_info(ssd1681_info_t *info)
get chip's information
ssd1681_mode_t
ssd1681 mode enumeration definition
uint8_t ssd1681_gram_fill_rect(ssd1681_handle_t *handle, ssd1681_color_t color, uint8_t left, uint8_t top, uint8_t right, uint8_t bottom, uint8_t data)
fill a rectangle in the gram
uint8_t ssd1681_set_display_update_control(ssd1681_handle_t *handle, ssd1681_display_control_t red_control, ssd1681_display_control_t black_control)
set the display update control
uint8_t ssd1681_otp_program_mode(ssd1681_handle_t *handle, ssd1681_otp_mode_t mode)
set the otp program mode
uint8_t ssd1681_set_read_ram(ssd1681_handle_t *handle, ssd1681_read_ram_t ram)
set the read ram
uint8_t ssd1681_gram_read_point(ssd1681_handle_t *handle, ssd1681_color_t color, uint8_t x, uint8_t y, uint8_t *data)
read a point from the gram
uint8_t ssd1681_set_end_option(ssd1681_handle_t *handle, ssd1681_end_opt_t opt)
end option
uint8_t ssd1681_set_ram_y(ssd1681_handle_t *handle, uint16_t start, uint16_t end)
set the ram y range
ssd1681_temperature_sensor_t
ssd1681 temperature sensor enumeration definition
uint8_t ssd1681_software_reset(ssd1681_handle_t *handle)
software reset
ssd1681_display_sequence_t
ssd1681 display sequence enumeration definition
ssd1681_font_t
ssd1681 font enumeration definition
uint8_t ssd1681_set_mode(ssd1681_handle_t *handle, ssd1681_mode_t mode)
set the mode
uint8_t ssd1681_set_gate_driving_voltage(ssd1681_handle_t *handle, ssd1681_gate_driving_voltage_t voltage)
set the gate driving voltage
ssd1681_vci_level_t
ssd1681 vci level enumeration definition
uint8_t ssd1681_set_hv_ready_detection(ssd1681_handle_t *handle, uint8_t cool_down_duration, uint8_t cool_down_loop_num)
set the hv ready detection
uint8_t ssd1681_set_ram_x_address_counter(ssd1681_handle_t *handle, uint8_t cnt)
set the ram x address counter
ssd1681_vbd_transition_t
ssd1681 vbd transition enumeration definition
uint8_t ssd1681_otp_program_vcom(ssd1681_handle_t *handle)
program vcom otp
uint8_t ssd1681_set_auto_write_black_ram(ssd1681_handle_t *handle, ssd1681_step_height_t height, ssd1681_step_width_t width)
set the auto write black ram
uint8_t ssd1681_otp_initial(ssd1681_handle_t *handle)
initial code setting otp program
uint8_t ssd1681_otp_write_register(ssd1681_handle_t *handle, uint8_t param[11])
otp write register for display option
uint8_t ssd1681_set_auto_write_red_ram(ssd1681_handle_t *handle, ssd1681_step_height_t height, ssd1681_step_width_t width)
set the auto write red ram
uint8_t ssd1681_set_crc_calculation(ssd1681_handle_t *handle)
set the crc calculation
uint8_t ssd1681_otp_initial_write(ssd1681_handle_t *handle, uint8_t param[4])
write register for initial code setting
uint8_t ssd1681_gram_write_point(ssd1681_handle_t *handle, ssd1681_color_t color, uint8_t x, uint8_t y, uint8_t data)
write a point in the gram
uint8_t ssd1681_set_enter_vcom_sense(ssd1681_handle_t *handle)
set enter vcom sense
ssd1681_vsh_t
ssd1681 vsh enumeration definition
ssd1681_vcom_t
ssd1681 vcom enumeration definition
ssd1681_read_ram_t
ssd1681 read ram enumeration definition
uint8_t ssd1681_set_booster_soft_start(ssd1681_handle_t *handle, uint8_t phase1, uint8_t phase2, uint8_t phase3, uint8_t duration)
set the booster soft start
uint8_t ssd1681_set_source_driving_voltage(ssd1681_handle_t *handle, ssd1681_vsh_t vsh1, ssd1681_vsh_t vsh2, ssd1681_vsl_t vsl)
set the source driving voltage
ssd1681_gs_transition_t
ssd1681 gs transition enumeration definition
uint8_t ssd1681_set_temperature_sensor(ssd1681_handle_t *handle, ssd1681_temperature_sensor_t sensor)
set the temperature sensor
ssd1681_gate_driving_voltage_t
ssd1681 gate driving voltage enumeration definition
uint8_t ssd1681_set_vcom_register(ssd1681_handle_t *handle, ssd1681_vcom_t vcom)
write vcom register
uint8_t ssd1681_set_data_entry_mode(ssd1681_handle_t *handle, ssd1681_address_mode_t mode, ssd1681_address_direction_t direction)
set the data entry mode
uint8_t ssd1681_clear(ssd1681_handle_t *handle, ssd1681_color_t color)
clear the screen
uint8_t ssd1681_get_status(ssd1681_handle_t *handle, uint8_t *status)
get the status
uint8_t ssd1681_set_ram_x(ssd1681_handle_t *handle, uint8_t start, uint8_t end)
set the ram x range
ssd1681_vbd_t
ssd1681 vbd enumeration definition
uint8_t ssd1681_nop(ssd1681_handle_t *handle)
nop command
ssd1681_phase_duration_t
ssd1681 phase duration enumeration definition
uint8_t ssd1681_set_border_waveform(ssd1681_handle_t *handle, ssd1681_vbd_t vbd, ssd1681_vbd_fix_level_t level, ssd1681_gs_transition_t gs_tran, ssd1681_vbd_transition_t vbd_tran)
set the border waveform
uint8_t ssd1681_set_vci_detection(ssd1681_handle_t *handle, ssd1681_vci_level_t level)
set the vci detection
uint8_t ssd1681_gram_update(ssd1681_handle_t *handle, ssd1681_color_t color)
update the gram data
uint8_t ssd1681_otp_program_waveform(ssd1681_handle_t *handle)
program otp of waveform setting
uint8_t ssd1681_set_black_ram(ssd1681_handle_t *handle)
set the black ram
ssd1681_address_mode_t
ssd1681 address mode enumeration definition
ssd1681_vsl_t
ssd1681 vsl enumeration definition
ssd1681_display_control_t
ssd1681 display control enumeration definition
uint8_t ssd1681_get_crc_status(ssd1681_handle_t *handle, uint16_t *status)
get the crc status
@ SSD1681_STEP_WIDTH_16
@ SSD1681_STEP_WIDTH_64
@ SSD1681_STEP_WIDTH_200
@ SSD1681_STEP_WIDTH_32
@ SSD1681_STEP_WIDTH_8
@ SSD1681_STEP_WIDTH_128
@ SSD1681_DRIVING_STRENGTH_1
@ SSD1681_DRIVING_STRENGTH_5
@ SSD1681_DRIVING_STRENGTH_8
@ SSD1681_DRIVING_STRENGTH_4
@ SSD1681_DRIVING_STRENGTH_7
@ SSD1681_DRIVING_STRENGTH_3
@ SSD1681_DRIVING_STRENGTH_6
@ SSD1681_DRIVING_STRENGTH_2
@ SSD1681_MIN_OFF_TIME_3P9
@ SSD1681_MIN_OFF_TIME_11P5
@ SSD1681_MIN_OFF_TIME_6P3
@ SSD1681_MIN_OFF_TIME_9P8
@ SSD1681_MIN_OFF_TIME_8P4
@ SSD1681_MIN_OFF_TIME_5P4
@ SSD1681_MIN_OFF_TIME_2P6
@ SSD1681_MIN_OFF_TIME_7P3
@ SSD1681_MIN_OFF_TIME_3P2
@ SSD1681_MIN_OFF_TIME_4P6
@ SSD1681_MIN_OFF_TIME_16P5
@ SSD1681_MIN_OFF_TIME_13P8
@ SSD1681_STEP_HEIGHT_16
@ SSD1681_STEP_HEIGHT_64
@ SSD1681_STEP_HEIGHT_32
@ SSD1681_STEP_HEIGHT_128
@ SSD1681_STEP_HEIGHT_8
@ SSD1681_STEP_HEIGHT_200
@ SSD1681_OTP_MODE_NORMAL
@ SSD1681_OTP_MODE_INTERNAL
@ SSD1681_END_OPT_NORMAL
@ SSD1681_END_OPT_KEEP_BEFORE_OUTPUT
@ SSD1681_COLOR_RED
@ SSD1681_COLOR_BLACK
@ SSD1681_VBD_FIX_LEVEL_VSH2
@ SSD1681_VBD_FIX_LEVEL_VSS
@ SSD1681_VBD_FIX_LEVEL_VSH1
@ SSD1681_VBD_FIX_LEVEL_VSL
@ SSD1681_BOOL_TRUE
@ SSD1681_BOOL_FALSE
@ SSD1681_ADDRESS_DIRECTION_UPDATED_Y
@ SSD1681_ADDRESS_DIRECTION_UPDATED_X
@ SSD1681_MODE_DEEP_SLEEP_1
@ SSD1681_MODE_DEEP_SLEEP_2
@ SSD1681_MODE_NORMAL
@ SSD1681_TEMPERATURE_SENSOR_INTERNAL
@ SSD1681_TEMPERATURE_SENSOR_EXTERNAL
@ SSD1681_DISPLAY_SEQUENCE_8
@ SSD1681_DISPLAY_SEQUENCE_1
@ SSD1681_DISPLAY_SEQUENCE_9
@ SSD1681_DISPLAY_SEQUENCE_0
@ SSD1681_DISPLAY_SEQUENCE_2
@ SSD1681_DISPLAY_SEQUENCE_6
@ SSD1681_DISPLAY_SEQUENCE_4
@ SSD1681_DISPLAY_SEQUENCE_10
@ SSD1681_DISPLAY_SEQUENCE_5
@ SSD1681_DISPLAY_SEQUENCE_11
@ SSD1681_DISPLAY_SEQUENCE_3
@ SSD1681_DISPLAY_SEQUENCE_7
@ SSD1681_FONT_24
@ SSD1681_FONT_12
@ SSD1681_FONT_16
@ SSD1681_VCI_LEVEL_2P3V
@ SSD1681_VCI_LEVEL_2P6V
@ SSD1681_VCI_LEVEL_2P4V
@ SSD1681_VCI_LEVEL_2P5V
@ SSD1681_VCI_LEVEL_2P2V
@ SSD1681_VBD_TRANSITION_LUT2
@ SSD1681_VBD_TRANSITION_LUT1
@ SSD1681_VBD_TRANSITION_LUT3
@ SSD1681_VBD_TRANSITION_LUT0
@ SSD1681_VSH_9P8V
@ SSD1681_VSH_11P4V
@ SSD1681_VSH_12V
@ SSD1681_VSH_4P6V
@ SSD1681_VSH_8P8V
@ SSD1681_VSH_4P7V
@ SSD1681_VSH_7P7V
@ SSD1681_VSH_9P4V
@ SSD1681_VSH_16P4V
@ SSD1681_VSH_4P1V
@ SSD1681_VSH_5P4V
@ SSD1681_VSH_16P6V
@ SSD1681_VSH_15V
@ SSD1681_VSH_3P6V
@ SSD1681_VSH_9P6V
@ SSD1681_VSH_10P6V
@ SSD1681_VSH_5P1V
@ SSD1681_VSH_8P5V
@ SSD1681_VSH_10V
@ SSD1681_VSH_2P9V
@ SSD1681_VSH_13V
@ SSD1681_VSH_5P8V
@ SSD1681_VSH_7P9V
@ SSD1681_VSH_5P7V
@ SSD1681_VSH_4P4V
@ SSD1681_VSH_3P1V
@ SSD1681_VSH_7P6V
@ SSD1681_VSH_13P2V
@ SSD1681_VSH_7P4V
@ SSD1681_VSH_14P8V
@ SSD1681_VSH_3P8V
@ SSD1681_VSH_4V
@ SSD1681_VSH_4P5V
@ SSD1681_VSH_12P2V
@ SSD1681_VSH_11V
@ SSD1681_VSH_7P3V
@ SSD1681_VSH_15P2V
@ SSD1681_VSH_4P3V
@ SSD1681_VSH_6P1V
@ SSD1681_VSH_6P5V
@ SSD1681_VSH_6P8V
@ SSD1681_VSH_2P5V
@ SSD1681_VSH_12P6V
@ SSD1681_VSH_9P2V
@ SSD1681_VSH_5P9V
@ SSD1681_VSH_6P7V
@ SSD1681_VSH_3V
@ SSD1681_VSH_8P7V
@ SSD1681_VSH_5P5V
@ SSD1681_VSH_13P6V
@ SSD1681_VSH_8P4V
@ SSD1681_VSH_6P2V
@ SSD1681_VSH_3P9V
@ SSD1681_VSH_5P2V
@ SSD1681_VSH_7P8V
@ SSD1681_VSH_5P6V
@ SSD1681_VSH_15P6V
@ SSD1681_VSH_2P6V
@ SSD1681_VSH_5P3V
@ SSD1681_VSH_2P7V
@ SSD1681_VSH_8P1V
@ SSD1681_VSH_12P4V
@ SSD1681_VSH_14P4V
@ SSD1681_VSH_11P2V
@ SSD1681_VSH_3P7V
@ SSD1681_VSH_17V
@ SSD1681_VSH_15P8V
@ SSD1681_VSH_2P8V
@ SSD1681_VSH_3P3V
@ SSD1681_VSH_8P2V
@ SSD1681_VSH_7P2V
@ SSD1681_VSH_5V
@ SSD1681_VSH_16P2V
@ SSD1681_VSH_14P6V
@ SSD1681_VSH_11P6V
@ SSD1681_VSH_2P4V
@ SSD1681_VSH_7P1V
@ SSD1681_VSH_13P8V
@ SSD1681_VSH_16V
@ SSD1681_VSH_11P8V
@ SSD1681_VSH_12P8V
@ SSD1681_VSH_16P8V
@ SSD1681_VSH_6V
@ SSD1681_VSH_4P2V
@ SSD1681_VSH_4P8V
@ SSD1681_VSH_10P4V
@ SSD1681_VSH_6P9V
@ SSD1681_VSH_8P3V
@ SSD1681_VSH_4P9V
@ SSD1681_VSH_3P2V
@ SSD1681_VSH_3P5V
@ SSD1681_VSH_8V
@ SSD1681_VSH_6P3V
@ SSD1681_VSH_14P2V
@ SSD1681_VSH_6P6V
@ SSD1681_VSH_6P4V
@ SSD1681_VSH_9V
@ SSD1681_VSH_10P8V
@ SSD1681_VSH_10P2V
@ SSD1681_VSH_7V
@ SSD1681_VSH_7P5V
@ SSD1681_VSH_13P4V
@ SSD1681_VSH_8P6V
@ SSD1681_VSH_15P4V
@ SSD1681_VSH_3P4V
@ SSD1681_VSH_14V
@ SSD1681_VCOM_NEGATIVE_0P5
@ SSD1681_VCOM_NEGATIVE_0P2
@ SSD1681_VCOM_NEGATIVE_1P4
@ SSD1681_VCOM_NEGATIVE_2P6
@ SSD1681_VCOM_NEGATIVE_2P5
@ SSD1681_VCOM_NEGATIVE_1P2
@ SSD1681_VCOM_NEGATIVE_3P0
@ SSD1681_VCOM_NEGATIVE_1P6
@ SSD1681_VCOM_NEGATIVE_2P2
@ SSD1681_VCOM_NEGATIVE_2P8
@ SSD1681_VCOM_NEGATIVE_1P9
@ SSD1681_VCOM_NEGATIVE_2P0
@ SSD1681_VCOM_NEGATIVE_2P9
@ SSD1681_VCOM_NEGATIVE_1P0
@ SSD1681_VCOM_NEGATIVE_0P3
@ SSD1681_VCOM_NEGATIVE_1P1
@ SSD1681_VCOM_NEGATIVE_1P3
@ SSD1681_VCOM_NEGATIVE_0P9
@ SSD1681_VCOM_NEGATIVE_1P5
@ SSD1681_VCOM_NEGATIVE_0P8
@ SSD1681_VCOM_NEGATIVE_0P4
@ SSD1681_VCOM_NEGATIVE_2P7
@ SSD1681_VCOM_NEGATIVE_2P3
@ SSD1681_VCOM_NEGATIVE_1P7
@ SSD1681_VCOM_NEGATIVE_0P7
@ SSD1681_VCOM_NEGATIVE_2P4
@ SSD1681_VCOM_NEGATIVE_2P1
@ SSD1681_VCOM_NEGATIVE_1P8
@ SSD1681_VCOM_NEGATIVE_0P6
@ SSD1681_READ_RAM_BLACK
@ SSD1681_READ_RAM_RED
@ SSD1681_GS_TRANSITION_FOLLOW_LUT
@ SSD1681_GS_TRANSITION_FOLLOW_LUT_RED
@ SSD1681_GATE_DRIVING_VOLTAGE_19P5V
@ SSD1681_GATE_DRIVING_VOLTAGE_20V
@ SSD1681_GATE_DRIVING_VOLTAGE_13V
@ SSD1681_GATE_DRIVING_VOLTAGE_12V
@ SSD1681_GATE_DRIVING_VOLTAGE_18P5V
@ SSD1681_GATE_DRIVING_VOLTAGE_14V
@ SSD1681_GATE_DRIVING_VOLTAGE_11V
@ SSD1681_GATE_DRIVING_VOLTAGE_16P5V
@ SSD1681_GATE_DRIVING_VOLTAGE_12P5V
@ SSD1681_GATE_DRIVING_VOLTAGE_10V
@ SSD1681_GATE_DRIVING_VOLTAGE_17V
@ SSD1681_GATE_DRIVING_VOLTAGE_13P5V
@ SSD1681_GATE_DRIVING_VOLTAGE_15P5V
@ SSD1681_GATE_DRIVING_VOLTAGE_16V
@ SSD1681_GATE_DRIVING_VOLTAGE_10P5V
@ SSD1681_GATE_DRIVING_VOLTAGE_19V
@ SSD1681_GATE_DRIVING_VOLTAGE_15V
@ SSD1681_GATE_DRIVING_VOLTAGE_18V
@ SSD1681_GATE_DRIVING_VOLTAGE_14P5V
@ SSD1681_GATE_DRIVING_VOLTAGE_11P5V
@ SSD1681_GATE_DRIVING_VOLTAGE_17P5V
@ SSD1681_VBD_VCOM
@ SSD1681_VBD_FIX_LEVEL
@ SSD1681_VBD_HIZ
@ SSD1681_VBD_GS_TRANSITION
@ SSD1681_PHASE_DURATION_40MS
@ SSD1681_PHASE_DURATION_30MS
@ SSD1681_PHASE_DURATION_20MS
@ SSD1681_PHASE_DURATION_10MS
@ SSD1681_ADDRESS_MODE_Y_DECREMENT_X_INCREMENT
@ SSD1681_ADDRESS_MODE_Y_INCREMENT_X_INCREMENT
@ SSD1681_ADDRESS_MODE_Y_INCREMENT_X_DECREMENT
@ SSD1681_ADDRESS_MODE_Y_DECREMENT_X_DECREMENT
@ SSD1681_VSL_NEGATIVE_6P5
@ SSD1681_VSL_NEGATIVE_9P5
@ SSD1681_VSL_NEGATIVE_11P5
@ SSD1681_VSL_NEGATIVE_15P5
@ SSD1681_VSL_NEGATIVE_6
@ SSD1681_VSL_NEGATIVE_14P5
@ SSD1681_VSL_NEGATIVE_11
@ SSD1681_VSL_NEGATIVE_16P5
@ SSD1681_VSL_NEGATIVE_5P5
@ SSD1681_VSL_NEGATIVE_13P5
@ SSD1681_VSL_NEGATIVE_10
@ SSD1681_VSL_NEGATIVE_10P5
@ SSD1681_VSL_NEGATIVE_7
@ SSD1681_VSL_NEGATIVE_15
@ SSD1681_VSL_NEGATIVE_12
@ SSD1681_VSL_NEGATIVE_8P5
@ SSD1681_VSL_NEGATIVE_16
@ SSD1681_VSL_NEGATIVE_5
@ SSD1681_VSL_NEGATIVE_17
@ SSD1681_VSL_NEGATIVE_13
@ SSD1681_VSL_NEGATIVE_9
@ SSD1681_VSL_NEGATIVE_12P5
@ SSD1681_VSL_NEGATIVE_14
@ SSD1681_VSL_NEGATIVE_7P5
@ SSD1681_VSL_NEGATIVE_8
@ SSD1681_DISPLAY_CONTROL_NORMAL
@ SSD1681_DISPLAY_CONTROL_BYPASS
@ SSD1681_DISPLAY_CONTROL_INVERSE
uint8_t ssd1681_read_data(ssd1681_handle_t *handle, uint8_t *buf, uint8_t len)
read the register data
uint8_t ssd1681_write_cmd(ssd1681_handle_t *handle, uint8_t *buf, uint8_t len)
write the register command
uint8_t ssd1681_write_data(ssd1681_handle_t *handle, uint8_t *buf, uint8_t len)
write the register data
ssd1681 handle structure definition
uint8_t red_gram[200][25]
uint8_t(* spi_init)(void)
void(* delay_ms)(uint32_t ms)
uint8_t(* busy_gpio_init)(void)
uint8_t(* spi_read_cmd)(uint8_t *buf, uint16_t len)
uint8_t(* spi_cmd_data_gpio_deinit)(void)
uint8_t(* reset_gpio_deinit)(void)
void(* debug_print)(const char *const fmt,...)
uint8_t(* busy_gpio_deinit)(void)
uint8_t(* spi_deinit)(void)
uint8_t(* reset_gpio_init)(void)
uint8_t black_gram[200][25]
uint8_t(* spi_cmd_data_gpio_init)(void)
uint8_t(* busy_gpio_read)(uint8_t *value)
uint8_t(* spi_write_cmd)(uint8_t *buf, uint16_t len)
uint8_t(* spi_cmd_data_gpio_write)(uint8_t value)
uint8_t(* reset_gpio_write)(uint8_t value)
ssd1681 information structure definition
uint32_t driver_version
char manufacturer_name[32]