美文网首页
【嵌入式】PCtoLCD驱动LCD取模方式及代码

【嵌入式】PCtoLCD驱动LCD取模方式及代码

作者: Blue_Well | 来源:发表于2022-03-31 17:47 被阅读0次

    本文适用于在LCD显示PCtoLCD生成的取模数据(单色图)。

    阳码:没有像素点的地方为0,反之为1
    高位在前&逐行式:可以用SPI一直往屏幕上刷数据

    显示代码:

    void lcd_show_bmp(uint8_t x, uint8_t y, uint8_t width, uint8_t height, uint8_t * p_bmp, uint16_t front_color, uint16_t back_color)
    {
        uint8_t key[8] = {0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
        
        uint16_t bmp_size = 0, width_tmp = 0;
        
        if(width % 8 == 0)
        {
            bmp_size = height*width/8;
            width_tmp = width;
        }
        else
        {
            bmp_size = height*(width/8+1);
            width_tmp = (width/8+1)*8;
        }
        
        lcd_set_pos(x, y, x + width_tmp, y + height);
        
        lcd_dc_data();
        
        lcd_cs_enable();
        
        for(uint16_t i = 0; i < bmp_size; i++)
        {
            for(uint16_t j = 0; j < 8; j++)
            {
                if((p_bmp[i] & key[j]) != 0)
                {
                    spi_write_byte(front_color >> 8);
                    spi_write_byte(front_color); 
                }
                else
                {
                    spi_write_byte(back_color >> 8);
                    spi_write_byte(back_color); 
                }
            }
        }
    
        lcd_cs_disable(); 
    }
    

    相关文章

      网友评论

          本文标题:【嵌入式】PCtoLCD驱动LCD取模方式及代码

          本文链接:https://www.haomeiwen.com/subject/ufunjrtx.html