一、软件取模参考

二、软件代码

//4096色/16位真彩色/18位真彩色/24位真彩色/32位真彩色
//图像数据头结构体
__packed typedef struct _HEADCOLOR
{unsigned char scan;unsigned char gray;unsigned short w;unsigned short h;unsigned char is565;unsigned char rgb;
}HEADCOLOR;
//scan: 扫描模式
//Bit7: 0:自左至右扫描,1:自右至左扫描。
//Bit6: 0:自顶至底扫描,1:自底至顶扫描。
//Bit5: 0:字节内象素数据从高位到低位排列,1:字节内象素数据从低位到高位排列。
//Bit4: 0:WORD类型高低位字节顺序与PC相同,1:WORD类型高低位字节顺序与PC相反。
//Bit3~2: 保留。
//Bit1~0: [00]水平扫描,[01]垂直扫描,[10]数据水平,字节垂直,[11]数据垂直,字节水平。
//gray: 灰度值
//   灰度值,1:单色,2:四灰,4:十六灰,8:256色,12:4096色,16:16位彩色,24:24位彩色,32:32位彩色。
//w: 图像的宽度。
//h: 图像的高度。
//is565: 在4096色模式下为0表示使用[16bits(WORD)]格式,此时图像数据中每个WORD表示一个象素;为1表示使用[12bits(连续字节流)]格式,此时连续排列的每12Bits代表一个象素。
//在16位彩色模式下为0表示R G B颜色分量所占用的位数都为5Bits,为1表示R G B颜色分量所占用的位数分别为5Bits,6Bits,5Bits。
//在18位彩色模式下为0表示"6Bits in Low Byte",为1表示"6Bits in High Byte"。
//在24位彩色和32位彩色模式下is565无效。
//rgb: 描述R G B颜色分量的排列顺序,rgb中每2Bits表示一种颜色分量,[00]表示空白,[01]表示Red,[10]表示Green,[11]表示Blue。void image_display(u16 x,u16 y,u8 * imgx);//在指定位置显示图片
void image_show(u16 xsta,u16 ysta,u16 xend,u16 yend,u8 scan,u8 *p);//在指定区域开始显示图片
u16 image_getcolor(u8 mode,u8 *str);//获取颜色
//从8位数据获得16位颜色
//mode:0,低位在前,高位在后.
//     1,高位在前,低位在后.
//str:数据
u16 image_getcolor(u8 mode,u8 *str)
{u16 color;if(mode){color=((u16)*str++)<<8;color|=*str;}else{color=*str++;color|=((u16)*str)<<8;}return color;
}
//在液晶上画图(仅支持:从左到右,从上到下 or 从上到下,从左到右 的扫描方式!)
//xsta,ysta,width,height:画图区域
//scan:见image2lcd V2.9的说明.
//*p:图像数据
void image_show(u16 xsta,u16 ysta,u16 width,u16 height,u8 scan,u8 *p)
{  u32 i;u32 len=0;if((scan&0x03)==0)//水平扫描{LCD_Scan_Dir(L2R_U2D);//从左到右,从上到下LCD_Set_Window(xsta,ysta,width,height);LCD_SetCursor(xsta,ysta);//设置光标位置 }else  //垂直扫描{  LCD_Scan_Dir(U2D_L2R);//从上到下,从左到右LCD_Set_Window(xsta,ysta,width,height);LCD_SetCursor(xsta,ysta);//设置光标位置  }LCD_WriteRAM_Prepare();    //开始写入GRAMlen=width*height;            //写入的数据长度for(i=0;i<len;i++){LCD_WR_DATA(image_getcolor(scan&(1<<4),p)); p+=2;}      LCD_Set_Window(0,0,lcddev.width,lcddev.height);
}  //在指定的位置显示一个图片
//此函数可以显示image2lcd软件生成的任意16位真彩色图片.
//限制:1,尺寸不能超过屏幕的区域.
//     2,生成数据时不能勾选:高位在前(MSB First)
//     3,必须包含图片信息头数据
//x,y:指定位置
//imgx:图片数据(必须包含图片信息头,"4096色/16位真彩色/18位真彩色/24位真彩色/32位真彩色”的图像数据头)
//注意:针对STM32,不能选择image2lcd的"高位在前(MSB First)"选项,否则imginfo的数据将不正确!!
void image_display(u16 x,u16 y,u8 * imgx)
{HEADCOLOR *imginfo;u8 ifosize=sizeof(HEADCOLOR);//得到HEADCOLOR结构体的大小imginfo=(HEADCOLOR*)imgx;image_show(x,y,imginfo->w,imginfo->h,imginfo->scan,imgx+ifosize);
}

三、函数调用

int main(void)
{ HEADCOLOR *imginfo;NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2delay_init(168);      //初始化延时函数uart_init(115200);     //初始化串口波特率为115200imginfo=(HEADCOLOR*)gImage_image2;    //得到文件信息 LCD_Init();           //初始化LCD FSMC接口image_display(0,400,(u8*)gImage_image2);//在指定地址显示图片while(1) {      delay_ms(10);}
}

STM32显示软件取模图片相关推荐

  1. STM32显示通过取模软件取模的汉字

    一.取模软件设置,参考下图 二.软件参考,正点原子开发板 //放头文件 struct typFNT_GB16 // 汉字字模数据结构体 {u8 Index[2];// 汉字内码索引,汉字在内存中占两个 ...

  2. OLED显示取模图片

    OLED show_image 说明 代码开源在我的个人Github:https://github.com/jesons007/Warship_Template-AC6-/tree/master/WA ...

  3. ESP8266 MP3制作——OLED显示之取模软件的使用

    取模软件的使用 软件的选择 PCtoLCD:取字模,输入汉字输出对应的数据代码 IMG2LCD:取图片模,输入图片文件输出对应的数据代码 具体软件自行在csdn搜索下载 取模软件的参数 由于很多篇文章 ...

  4. TFTLCD液晶显示数码管字体(电脑数码管字体的导入和PCtoLCD软件取模)

    1,电脑添加字体操作 2,找到个性化 3,选择字体并添加下载好的字体,字体见文后链接 字体文件,解压后是ttf文件: 4,如果电脑系统不一样,阔以看看下面这个直接把字体复制到文件夹里 5,PCtoLC ...

  5. c语言 字体点阵取模,[汉字取模软件怎么用]单片机点阵汉字显示需要用

    [汉字取模软件怎么用]单片机点阵汉字显示需要用汉字取模软件吗 通常,用汉字取模软件生成工程所需所有汉字点阵信息.也可利用字库芯片,根据汉字内码计算字模地址,并从字库芯片中导出相关汉字的点阵信息.前者容 ...

  6. LCD / OLED显示汉字,取模软件PCtoLCD2002完美版

    一.LCD显示汉字结果展示: 二.取模软件的使用(PCtoLCD2002完美版) 1. 打开软件,模式为(字符模式) 点击菜单栏[选项],打开字模选项 勾选[阴码点阵].逐列式取模.顺向(高位在前,低 ...

  7. 基于89C51/52单片机的旋转LED制作、 程序、及图片取模

    这是很久以前学单片机不久挖的坑,硬件做好了,没找到合适的取模软件.最近比较闲,翻出来收尾一下. 先看效果图 汤姆猫 GitHub CSDN 硬件部分 电路图,用共阳极是因为51单片机下拉能力比上拉能力 ...

  8. 浅谈LCD、OLED、TFT取模及其程序开发的算法取舍

    做任何电子产品,必然有人机交互的部分,对于开发人员而已,可能性只需要一个简单的串口就可以完成产品所有功能上的开发,但是产品推广后期必然会加入一些显示器件,最常用的就是LCD.OLED.TFT(可能还有 ...

  9. 0.96寸OLED显示汉字,数字,英文,图片,GIF动画+取模软件使用+代码解析

    前言 本次我们学习一下STM32F103关于OLED显示汉字,数字,英文,图片,GIF动画,和介绍各种取模软件的使用,主要教会大家使用和修改OLED驱动的代码,对汉字大小,图片分辨率进行代码修改并显示 ...

最新文章

  1. Tensorflow—Fetch and Feed
  2. linux内核(4.17.10)配置项详解(x86)
  3. boost::polygon模块voronoi相关的测试程序
  4. mysql设计技巧_MySQL库表设计小技巧
  5. delphi switch语句例子_「GCTT 出品」Go 系列教程——10. switch 语句
  6. PPPOE宽带接入技术及常见故障分析
  7. CSS学习总结(6)——定位与布局
  8. jQuery使用手册之三 CSS操作
  9. 信号与线性系统分析 吴大正 (与电子 通信专业的同学共勉)
  10. 防163网易邮箱登录界面html,网易邮箱163,网易邮箱163登录界面
  11. 多人共享协作画板——多人画板
  12. 查看linux vnc用户名,VNC远程连接Linux
  13. 华为路由器:首次登陆配置Console、Telnet登录、Web登录
  14. mysql连接显示“message from server :“Host ‘XXXX‘ is not allowed to connect to this MySQL server“”
  15. 新旧骗术揭秘:防止5G时代的电信诈骗
  16. MMGG聚焦| Mines of Dalarnia-土地预售在即
  17. java8 joda_Joda Time和Java8时差
  18. Mybatis + mysql获取元数据时出现问题以及解决
  19. 产品思维训练 | 为什么很多家喻户晓的品牌还要继续投广告?
  20. VMware虚拟机安装macos Big Sur 11.1.0 (20C69)镜像CDR/ISO下载

热门文章

  1. linux中利用k键杀死进程号,linux下杀死进程的若干方法
  2. 华为云快成长直播间大数据AI专场,加速经济物联网智能化提升
  3. 企业微信如何解散自己建的群聊
  4. 2D灯光 Unity2021
  5. 怎么用class引入svg_利用AI工具,将图片格式转换为SVG格式操作
  6. 计算机导论课后总结五
  7. 如何快速增加qq名片赞
  8. android通过代码设置铃声_更接地气的定制 ROM,还有哪些特性可以向原生 Android 借鉴?
  9. 国产化飞腾CPU主板安装统信专业版桌面OS,以及统信OS如何进root用户
  10. 网上银行系统1:系统分析