我这个显示函数只能显示正方形的图片,搞不懂怎么回事

2019-07-21 08:44发布

//单 {MOD}图像显示
//配合软件
//输入图像数组需要数据头
//自动确定宽度高度
void lcd_draw_bmp ( u16 xpos, u16 ypos, u32 bmp_sizeof, const u8 *bmp )
{
        u8 draw_x=0,draw_y=0;
        u8 count_8 = 0;
        u16 count = 0;
        u16 color = 0;
       
        //分解数据头的数据       
        Data_header.scan = bmp[count++];
        Data_header.gray = bmp[count++];
        Data_header.w    = (unsigned short)bmp[count++]<<8;
        Data_header.w    |= bmp[count++];
        Data_header.h           = (unsigned short)bmp[count++]<<8;
        Data_header.h           |= bmp[count++];
        printf("数组大小:%d 最大宽度:%d ",bmp_sizeof,Data_header.w);
       
        //显示部分
        for( ;count<bmp_sizeof;count++ )//bmp_sizeof个数组
        {
                for( count_8 = 0x80;count_8!=0;count_8>>=1 )//分解数组
                {               
                       
                        if(bmp[count]&count_8)//黑白判断
                                color = 0x0000;
                        else//黑
                                color = 0xffff;                       
                       
                        draw_x++;
                        if(draw_x == Data_header.w)//最大宽度
                        {
                                draw_x=0;
                                draw_y++;//显示完毕不影响
                        }       
                       
                        lcd_draw_point(xpos+draw_x, ypos+draw_y,color);//打点
                }               
        }
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。