测试代码:
V6-2021_GUIX OLED.7z (10.01MB)
测试代码部分:
[C] 纯文本查看 复制代码 /*
*********************************************************************************************************
* 函 数 名: stm32_monochrome_buffer_toggle
* 功能说明: 单色屏绘制,直接做整个屏的重绘
* 形 参: 无
* 返 回 值: 无
*********************************************************************************************************
*/
static void stm32_monochrome_buffer_toggle(GX_CANVAS *canvas, GX_RECTANGLE *dirty)
{
uint8_t *p;
/* 防止警告 */
(void)canvas;
(void)dirty;
/* 获得OLED画布的地址 */
p = (uint8_t *)display_1_canvas_memory;
HC574_TogglePin(GPIO_PIN_23);
HC574_TogglePin(GPIO_PIN_22);
/* 将画布的内容绘制到OLED显存 */
for (int y= 0; y < 64; y++)
{
for (int x = 0; x < 128; x+=8)
{
OLED_PutPixel(x, y, (p[16*y + x/8]&(0x80))>>7);
OLED_PutPixel(x+1, y, (p[16*y + x/8]&(0x40))>>6);
OLED_PutPixel(x+2, y, (p[16*y + x/8]&(0x20))>>5);
OLED_PutPixel(x+3, y, (p[16*y + x/8]&(0x10))>>4);
OLED_PutPixel(x+4, y, (p[16*y + x/8]&(0x08))>>3);
OLED_PutPixel(x+5, y, (p[16*y + x/8]&(0x04))>>2);
OLED_PutPixel(x+6, y, (p[16*y + x/8]&(0x02))>>1);
OLED_PutPixel(x+7, y, (p[16*y + x/8]&(0x01))>>0);
}
}
/* 将OLED显存的内容实际绘制到OLED */
HC574_TogglePin(GPIO_PIN_22);
OLED_EndDraw();
HC574_TogglePin(GPIO_PIN_23);
}
代码更新到1K的显存时间:
代码更新到显存+OLED刷新时间:
|