2024-01-09 06:26:46 +00:00
|
|
|
#pragma once
|
|
|
|
#include <stdio.h>
|
|
|
|
#include <stdlib.h>
|
|
|
|
#include <sstream>
|
|
|
|
#include <time.h>
|
|
|
|
#include <unistd.h>
|
|
|
|
#include <uart/Gpio.h>
|
|
|
|
|
|
|
|
class Lcd
|
|
|
|
{
|
|
|
|
private:
|
|
|
|
Gpio spi_sck;
|
|
|
|
Gpio spi_sda;
|
|
|
|
Gpio spi_cs;
|
|
|
|
Gpio spi_reset;
|
|
|
|
Gpio spi_rs;
|
|
|
|
Gpio COM_BOOT0;
|
|
|
|
|
|
|
|
public:
|
|
|
|
Lcd();
|
|
|
|
/*=======写指令========*/
|
|
|
|
void Lcd_Transfer_Command(int data1);
|
|
|
|
|
|
|
|
/*--------写数据------------*/
|
|
|
|
void Lcd_Transfer_data(int data1);
|
|
|
|
|
|
|
|
/*LCD模块初始化*/
|
|
|
|
void Lcd_Initial_Lcd(bool biglcd);
|
|
|
|
|
|
|
|
void Lcd_Address(unsigned char page, unsigned char column);
|
|
|
|
|
|
|
|
/*全屏清屏*/
|
|
|
|
void Lcd_Clear_screen();
|
|
|
|
|
|
|
|
void Lcd_Clear_Half_Screen(bool top);
|
|
|
|
|
|
|
|
//===显示测试画面:例如全显示,隔行显示,隔列显示,雪花显示=====
|
|
|
|
void Lcd_Test_Display(unsigned char data1, unsigned char data2);
|
|
|
|
|
|
|
|
/*显示128x64点阵图像*/
|
|
|
|
void Lcd_Display_Graphic_128x64(unsigned char page, unsigned char column, unsigned char *dp);
|
|
|
|
|
|
|
|
/*显示32x32点阵图像、汉字、生僻字或32x32点阵的其他图标*/
|
|
|
|
void Lcd_Display_graphic_32x32(unsigned char page, unsigned char column, unsigned char *dp);
|
|
|
|
|
|
|
|
/*显示16x16点阵图像、汉字、生僻字或16x16点阵的其他图标*/
|
|
|
|
void Lcd_Display_Graphic_16x16_2(unsigned char reverse,unsigned char page,unsigned char column,unsigned char *dp);
|
|
|
|
|
|
|
|
/*显示16x16点阵图像、汉字、生僻字或16x16点阵的其他图标*/
|
|
|
|
void Lcd_Display_Graphic_16x16(unsigned char page, unsigned char column, unsigned char *dp,unsigned int wordcount);
|
|
|
|
|
|
|
|
/*显示8x16点阵图像、ASCII, 或8x16点阵的自造字符、其他图标*/
|
|
|
|
void Lcd_Display_Graphic_8x16(unsigned char page, unsigned char column,unsigned char *dp);
|
|
|
|
|
|
|
|
void Lcd_Display_String_8x16(unsigned int page, unsigned int column, const char *text);
|
|
|
|
|
|
|
|
void Lcd_Display_String_5x8(unsigned int page, unsigned int column, const char *text);
|
|
|
|
|
2024-02-02 08:53:17 +00:00
|
|
|
// New ...
|
|
|
|
enum
|
|
|
|
{
|
|
|
|
LCD_WIDTH = 128,
|
|
|
|
LCD_HEIGHT = 32,
|
|
|
|
LCD_LINE_PER_PAGE = 8,
|
|
|
|
};
|
|
|
|
|
|
|
|
// 32 lines devide into 4 pages and 8 lines per page
|
|
|
|
// size: 32lines x 1056px
|
|
|
|
void go_to(uint8_t page, uint8_t col);
|
|
|
|
void write(uint8_t val, bool data, uint8_t mask = 0);
|
|
|
|
void write_line(uint8_t rows, uint8_t cols, uint8_t cnt, uint8_t** data, int x = 0, int y = 0, uint8_t mask = 0);
|
|
|
|
void clear(int x = 0, int y = 0, int w = -1, int h = -1);
|
|
|
|
|
|
|
|
private:
|
|
|
|
void set_data_type(bool data);
|
|
|
|
void write_before(void);
|
|
|
|
void write_char(uint8_t val, uint8_t mask = 0);
|
|
|
|
void write_end(void);
|
|
|
|
|
2024-01-09 06:26:46 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
|