STM32F4_LCD显示图片

        本程序基于正点的STM32F4系列;

        LCD 显示数字和字符的原理都是将数字和字符转换成点阵,通过函数扫描点阵进而在LCD上显示,LCD显示图片的原理也是如此,将图片转换成若干点阵,进而通过函数进行扫描,正点官方提供了图片转换成点阵的工具 Image2LCD v2.9

具体步骤:

        1. 首先打开原子哥的 LCD 例程,在 LCD.c 文件下添加 LCD_ShowPicture 函数,在 LCD 上显示图片;

//参数
//x y 起点坐标
//像素 60*180
//pic 源数组

//注:参数column和row需要根据工具Image2LCD进行设置,否则LCD上无法显示正确的图片

void LCD_ShowPicture(u16 x,u16 y,u16 column,u16 row,unsigned short *pic)
{
    u16 m,h;
    u16 *data=(u16*)pic;
    for(h=0+y;h<row+y;h++) //60
    {
        for(m=0+x;m<column+x;m++) //180
        {
            LCD_Fast_DrawPoint(m,h,*data++);
        }
    }
}

        2. 网上随便找 1~2 张图片;

        3. 使用正点提供的 Image2LCD 软件取模变成数组;

        4. 将数组复制到 main.c 中;

        5. 编写主函数调用 LCD_ShowPicture 即可;

int main(void)
{ 
    
	u8 lcd_id[12];				//存放LCD ID字符串
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
	delay_init(168);      //初始化延时函数
	uart_init(115200);		//初始化串口波特率为115200
	
    LED_Init();
 	LCD_Init();           //初始化LCD FSMC接口
	POINT_COLOR=RED;      //画笔颜色:红色
	sprintf((char*)lcd_id,"LCD ID:%04X",lcddev.id);//将LCD ID打印到lcd_id数组。
        
    LCD_Clear(WHITE);
    
    LCD_ShowNum(100,380,20230610,8,24);
    //LCD_ShowPicture(0,0,480,300,(u16*)gImage_16);
    LCD_ShowPicture(0,0,270,360,(u16*)gImage_12);
    
    while(1)
    {
        LED0=!LED0;
        delay_ms(500);
    }
}

        6. 实验现象

注意:

        LCD_ShowPicture 函数的第三个参数和第四个参数需要根据导入图片输出图像值进行设置,否则无法显示正确的图片!

  • 6
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值