GDE029A1墨水屏 花屏
illusionlee opened this issue · 2 comments
illusionlee commented
你好,我使用的佳显GDE029A1墨水屏,芯片是IL3820的,但是根据样例写了个Demo,显示屏却有花屏的现象,表现为屏幕下半部分有很多横线,斑状的黑块。不知道这个怎么传照片,只好这么形容了。
代码如下:
#include <rthw.h>
#include <rtthread.h>
#include <rtdevice.h>
#include <u8g2_port.h>
#define OLED_SPI_PIN_CLK 21 // PB16
#define OLED_SPI_PIN_MOSI 22 // PB17
#define OLED_SPI_PIN_RES 29 // PB9
#define OLED_SPI_PIN_DC 28 // PB8
#define OLED_SPI_PIN_CS 27 // PB7
static void u8g2_page_buffer_chinese(int argc, char *argv[])
{
u8g2_t u8g2;
// Initialization
u8g2_Setup_il3820_v2_296x128_2( &u8g2, U8G2_R0, u8x8_byte_4wire_sw_spi, u8x8_rt_gpio_and_delay);
u8x8_SetPin(u8g2_GetU8x8(&u8g2), U8X8_PIN_SPI_CLOCK, OLED_SPI_PIN_CLK);
u8x8_SetPin(u8g2_GetU8x8(&u8g2), U8X8_PIN_SPI_DATA, OLED_SPI_PIN_MOSI);
u8x8_SetPin(u8g2_GetU8x8(&u8g2), U8X8_PIN_CS, OLED_SPI_PIN_CS);
u8x8_SetPin(u8g2_GetU8x8(&u8g2), U8X8_PIN_DC, OLED_SPI_PIN_DC);
u8x8_SetPin(u8g2_GetU8x8(&u8g2), U8X8_PIN_RESET, OLED_SPI_PIN_RES);
u8g2_InitDisplay(&u8g2);
u8g2_SetPowerSave(&u8g2, 0);
u8g2_SetFont(&u8g2, u8g2_font_baby_tf);
rt_kprintf("u8g2_SetFont\n");
u8g2_DrawStr(&u8g2, 0, 0, "U8g2 on RT-Thread-1");
u8g2_DrawStr(&u8g2, 0, 5, "U8g2 on RT-Thread-2");
u8g2_DrawStr(&u8g2, 0, 15, "U8g2 on RT-Thread-3");
u8g2_SendBuffer(&u8g2);
}
希望能得到你的帮助:
1、如何分析下这个初始化后,为何会有乱码显示,定位下问题点
2、我在使用的时候发现, 这个长和宽好像不准确,上面程序在实际屏幕上,第一行U8g2 on RT-Thread-1
没有打印出来,如何确认屏幕的长和宽,在什么位置定义和修改。
再次表示感谢!
wuhanstudio commented
你好,
根据初始化代码来看屏幕大小是 296x128 的 (u8g2_Setup_il3820_v2_296x128_2)
如果你的屏幕大于 240 像素的话,需要把 u8g2.h 里这一行取消注释,这样显示就正常了:
#define U8G2_16BIT
https://github.com/wuhanstudio/rt-u8g2/blob/master/src/u8g2.h
illusionlee commented
非常感谢!现在已经正常工作了,哈哈 ,开心