全球速看:基于STM32设计的数码相册

来源:  发布时间:2023-06-24 21:10:22 


(资料图)

一、项目介绍

项目是基于STM32设计的数码相册,能够通过LCD显示屏解码显示主流的图片,支持bmp、jpg、gif等格式。用户可以通过按键或者触摸屏来切换图片,同时还可以旋转显示,并能够自适应居中显示,小尺寸图片居中显示,大尺寸图片自动缩小显示(超出屏幕范围)。图片从SD卡中获取。

二、设计思路2.1 硬件设计

本项目所需的主要硬件:

STM32F103ZET6LCD屏幕SD卡模块按键和触摸屏2.2 软件设计(1)解码图片

在STM32芯片中,解码图片需要将读取到的数据存入图形缓冲区中,以便进行图画显示。常用的解码算法有JPEG解码和BMP解码。

(2)图片显示

为了更好的实现图片旋转和缩放功能,在显示图片时需对其进行矩阵运算。通过左右翻转和上下翻转,可实现图片的旋转功能。通过计算图片与显示屏幕之间的比例关系并进行缩放,实现自适应居中和图片的缩放功能。

(3)SD卡

SD卡模块可通过SPI接口与STM32芯片进行通信,读取SD卡中的图片数据,实现对图片的加载和显示。

(4)按键和触摸屏

在使用过程中,用户可以通过按键和触摸屏对图片进行切换、旋转和缩放等操作。通过设置中断处理函数,响应用户的操作并及时更新显示屏幕上的图片。

2.3 图片播放流程图2.4 显示效果三、代码设计3.1 主函数
#include "stm32f10x.h" #include "led.h" #include "delay.h" #include "key.h" #include "usart.h" #include < string.h > #include < stdio.h > #include "sd.h" //SD卡 #include "ff.h" //文件系统 #include "bmp.h" //文件系统 #include "iic.h" #include "at24c02.h" #include "xpt2046.h" #include "lcd.h" ​ ​ FATFS fs;  // 用户定义的文件系统结构体 int main() {     DIR  dir_dp;     FILINFO file_info;     u32 sd_size;    //存放SD卡返回的容量     BeepInit();       //蜂鸣器初始化     LedInit();      //LED灯初始化      UsartInit(USART1,72,115200);     KeyInit();     //按键初始化     IICInit();     LcdInit();     TOUCH_Init();      //TOUCH_ADJUST(); //触摸屏校准          printf("串口工作正常!\\r\\n");     if(SDCardDeviceInit())      {        printf("SD卡初始化失败!\\r\\n");     }          sd_size=GetSDCardSectorCount(); //检测SD卡大小,返回值右移11位得到以M为单位的容量     printf("SD卡Sizeof:%d\\r\\n",sd_size >>11);        f_mount(&fs,"0:",1);  // 注册文件系统工作区,驱动器号 0,初始化后其他函数可使用里面的参数     LcdClear(0xFFFF);          //f_mkdir("0:/目录创建测试!"); //测试OK     //f_unlink("0:/123"); //删除目录,注意只能删除空目录     //f_unlink("0:/1.bmp");//删除文件     //printf("%d\\r\\n",Show_BMP("1.bmp"));          if(f_opendir(&dir_dp,"0:/bmp")!=FR_OK)printf("目录打开失败!\\r\\n");          //循环读取目录     while(f_readdir(&dir_dp,&file_info)==FR_OK)     {             if(file_info.fname[0]==0)break;    //判断目录跳出条件,表示目录已经读取完毕             if(strstr(file_info.fname,".bmp")) //过滤目录             {                     printf("文件名称: %s,文件大小: %ld 字节\\r\\n",file_info.fname,file_info.fsize);             }else   printf("文件名称: %s,文件大小: %ld 字节\\r\\n",file_info.fname,file_info.fsize);     }     if(f_closedir(&dir_dp)!=FR_OK)printf("目录关闭失败!\\r\\n");     while(1)     {             LED1=!LED1;          DelayMs(100);     } } ​
3.2 BMP图片解码
#include "bmp.h" unsigned short RGB888ToRGB565(unsigned int n888Color)   {       unsigned short n565Color = 0;          // 获取RGB单色,并截取高位       unsigned char cRed   = (n888Color & RGB888_RED)   > > 19;       unsigned char cGreen = (n888Color & RGB888_GREEN) > > 10;       unsigned char cBlue  = (n888Color & RGB888_BLUE)  > > 3;          // 连接       n565Color = (cRed < < 11) + (cGreen < < 5) + (cBlue < < 0);       return n565Color;   }   ​ unsigned int RGB565ToRGB888(unsigned short n565Color)   {       unsigned int n888Color = 0;          // 获取RGB单色,并填充低位       unsigned char cRed   = (n565Color & RGB565_RED)    > > 8;       unsigned char cGreen = (n565Color & RGB565_GREEN)  > > 3;       unsigned char cBlue  = (n565Color & RGB565_BLUE)   < < 3;          // 连接       n888Color = (cRed < < 16) + (cGreen < < 8) + (cBlue < < 0);       return n888Color;   }   ​ ​ ​ /* 函数功能:实现截图功能 参    数:                 char filename:文件名称 返 回 值:0表示成功,1表示失败 */ u8 C_BMP(const char *filename,u32 Width,u32 Height) {     FIL  file; // 用户定义的文件系统结构体     u8   res;  // 保存文件操作的返回值     BITMAPFILEHEADER BmpHead; //保存图片文件头的信息   BITMAPINFOHEADER BmpInfo; //图片参数信息     char *p;     u32 cnt,c_32;     int x,y;     u16 c_16; //存放16位的颜色          /*1. 创建一张BMP图片*/     res = f_open(&file,filename, FA_OPEN_ALWAYS | FA_WRITE);     if(res!=0)return 1;          /*2. 创建BMP的图片头参数*/     memset(&BmpHead,0,sizeof(BITMAPFILEHEADER)); //将指定空间赋值为指定的值     p=(char*)&BmpHead.bfType; //填充BMP图片的类型     *p="B";     *(p+1)="M"; ​     //BmpHead.bfType=0x4d42;//"B""M"   //0x4d42     BmpHead.bfSize=Width*Height*3+54;  //图片的总大小     BmpHead.bfOffBits=54;              //图片数据的偏移量   res =f_write(&file,&BmpHead,sizeof(BITMAPFILEHEADER),&cnt);     if(res!=0)return 1;          /*3. 创建BMP图片的参数*/     memset(&BmpInfo,0,sizeof(BITMAPINFOHEADER));     BmpInfo.biSize=sizeof(BITMAPINFOHEADER); //当前结构体大小     BmpInfo.biWidth=Width;     BmpInfo.biHeight=Height;     BmpInfo.biPlanes=1;     BmpInfo.biBitCount=24;     res =f_write(&file,&BmpInfo,sizeof(BITMAPINFOHEADER),&cnt);     if(res!=0)return 1;              /*4. 读取LCD屏的颜色数据,用于创建BMP图片*/     for(y=Height-1;y >=0;y--)     {           for(x=0;x< Width;x++)           {                 c_16=LcdReadPoint(x,y); //读取LCD屏上一个点的颜色                   c_32=RGB565ToRGB888(c_16); //颜色的转换                   res =f_write(&file,&c_32,3,&cnt);                   if(res!=0)return 1;             }     }          /*5. 关闭文件*/     f_close(&file); } ​ ​ /* 函数功能:BMP图片显示功能 参    数:                 char filename:文件名称 返 回 值:0表示成功,1表示失败 */ u8 Show_BMP(const char *filename) {     FIL  file; // 用户定义的文件系统结构体     u8   res;  // 保存文件操作的返回值     BITMAPFILEHEADER BmpHead; //保存图片文件头的信息   BITMAPINFOHEADER BmpInfo; //图片参数信息     char *p;     u32 cnt,c_24;     int x,y;     u16 c_16; //存放16位的颜色          /*1. 打开一张BMP图片*/     res = f_open(&file,filename,FA_READ);     if(res!=0)return 1;          /*2. 读取BMP的图片头参数*/   res =f_read(&file,&BmpHead,sizeof(BITMAPFILEHEADER),&cnt);     if(res!=0)return 1;          /*3. 读取BMP图片的参数*/     res =f_read(&file,&BmpInfo,sizeof(BITMAPINFOHEADER),&cnt);     if(res!=0)return 1;          /*4.显示BMP图片*/     f_lseek(&file,BmpHead.bfOffBits); //移动到RGB数据的存放位置          //后期的优化:读取一行的数据,再显示一行。    for(y=0;y< BmpInfo.biHeight;y++)      {             for(x=0;x< BmpInfo.biWidth;x++)          {                 res =f_read(&file,&c_24,3,&cnt);                     if(res!=0)return 1;                 c_16=RGB888ToRGB565(c_24); //转换颜色                 LcdDrawPoint(x,y,c_16);          }      }     /*5. 关闭文件*/     f_close(&file); } ​ ​
3.3 jpeg图片解码
#include "piclib.h" #include "nt35310_lcd.h" _pic_info picinfo;      //图片信息 _pic_phy pic_phy;         //图片显示物理接口     ​ /* 函数功能: 划横线函数,需要自己实现 */ void Picture_DrawLine(u16 x0,u16 y0,u16 len,u16 color) {     NT35310_Fill(x0,y0,x0+len-1,y0,color);   } ​ /* 函数功能: 矩形填充颜色 函数参数:         x,y:起始坐标         width,height:宽度和高度。         color:颜色数组 */ void Picture_FillColor(u16 x,u16 y,u16 width,u16 height,u16 *color) {       NT35310_DrawRectangle(x,y,x+width-1,y+height-1,*color);  } ​ /* 函数功能: 画图初始化,在画图之前,必须先调用此函数 函数参数: 指定画点/读点 */ void Picture_DisplayInit(void) {     pic_phy.draw_point=NT35310_DrawPoint;    //画点函数实现     pic_phy.fill=NT35310_Fill;                       //填充函数实现,仅GIF需要     pic_phy.draw_hline=Picture_DrawLine;     //画线函数实现,仅GIF需要     pic_phy.fillcolor=Picture_FillColor;     //颜色填充函数实现,仅TJPGD需要      picinfo.lcdwidth=Lcd_Width;                          //得到LCD的宽度像素     picinfo.lcdheight=Lcd_Height;                        //得到LCD的高度像素 ​     picinfo.ImgWidth=0; //初始化宽度为0     picinfo.ImgHeight=0;//初始化高度为0     picinfo.Div_Fac=0;  //初始化缩放系数为0     picinfo.S_Height=0; //初始化设定的高度为0     picinfo.S_Width=0;  //初始化设定的宽度为0     picinfo.S_XOFF=0;     //初始化x轴的偏移量为0     picinfo.S_YOFF=0;     //初始化y轴的偏移量为0     picinfo.staticx=0;  //初始化当前显示到的x坐标为0     picinfo.staticy=0;  //初始化当前显示到的y坐标为0 } ​ ​ /* 函数功能: 初始化智能画点 说明: 内部调用 */ void Picture_PointInit(void) {     float temp,temp1;           temp=(float)picinfo.S_Width/picinfo.ImgWidth;     temp1=(float)picinfo.S_Height/picinfo.ImgHeight;                              if(temp< temp1)temp1=temp;//取较小的那个         if(temp1 >1)temp1=1;        //使图片处于所给区域的中间     picinfo.S_XOFF+=(picinfo.S_Width-temp1*picinfo.ImgWidth)/2;     picinfo.S_YOFF+=(picinfo.S_Height-temp1*picinfo.ImgHeight)/2;     temp1*=8192;//扩大8192倍         picinfo.Div_Fac=temp1;     picinfo.staticx=0xffff;     picinfo.staticy=0xffff;//放到一个不可能的值上面                                                         }   ​ /* 函数功能: 判断这个像素是否可以显示 函数参数:             (x,y) :像素原始坐标             chg   :功能变量. 返回值:0,不需要显示.1,需要显示 */ u8 Picture_is_Pixel(u16 x,u16 y,u8 chg) {                      if(x!=picinfo.staticx||y!=picinfo.staticy)     {         if(chg==1)         {             picinfo.staticx=x;             picinfo.staticy=y;         }          return 1;     }else return 0; } ​ extern u8 jpg_decode(const u8 *filename); ​ /* 函数功能: 绘制图片 函数参数:                 FileName:要显示的图片文件  BMP/JPG/JPEG/GIF                 x,y,width,height:坐标及显示区域尺寸                 fast:使能jpeg/jpg小图片(图片尺寸小于等于液晶分辨率)快速解码,0,不使能;1,使能.                 函数说明: 图片在开始和结束的坐标点范围内显示 */ u8 Picture_DisplayJPG(const u8 *filename,u16 x,u16 y,u16 width,u16 height,u8 fast) {        u8  res;//返回值          //显示的图片高度、宽度     picinfo.S_Height=height;     picinfo.S_Width=width; ​     //显示的开始坐标点     picinfo.S_YOFF=y;     picinfo.S_XOFF=x;          //解码JPG/JPEG            res=jpg_decode(filename);             //解码JPG/JPEG                                                        return res; } ​
3.4 gif图片解码
#include "piclib.h" #include < stm32f10x.h > #include "gif.h"      #include "ff.h"  #include "delay.h"       #include < string.h > ​ const u16 _aMaskTbl[16] = {     0x0000, 0x0001, 0x0003, 0x0007,     0x000f, 0x001f, 0x003f, 0x007f,     0x00ff, 0x01ff, 0x03ff, 0x07ff,     0x0fff, 0x1fff, 0x3fff, 0x7fff, };     const u8 _aInterlaceOffset[]={8,8,4,2}; const u8 _aInterlaceYPos  []={0,4,2,1};   u8 gifdecoding=0;//标记GIF正在解码. ​ //检测GIF头 //返回值:0,是GIF89a/87a;非零,非GIF89a/87a u8 gif_check_head(FIL *file) {     u8 gifversion[6];     u32 readed;     u8 res;     res=f_read(file,gifversion,6,(UINT*)&readed);     if(res)return 1;            if((gifversion[0]!="G")||(gifversion[1]!="I")||(gifversion[2]!="F")||     (gifversion[3]!="8")||((gifversion[4]!="7")&&(gifversion[4]!="9"))||     (gifversion[5]!="a"))return 2;     else return 0;   } ​ //将RGB888转为RGB565 //ctb:RGB888颜色数组首地址. //返回值:RGB565颜色. u16 gif_getrgb565(u8 *ctb)  {     u16 r,g,b;     r=(ctb[0] >>3)&0X1F;     g=(ctb[1] >>2)&0X3F;     b=(ctb[2] >>3)&0X1F;     return b+(g< <5)+(r< <11); } ​ //读取颜色表 //file:文件; //gif:gif信息; //num:tbl大小. //返回值:0,OK;其他,失败; u8 gif_readcolortbl(FIL *file,gif89a * gif,u16 num) {     u8 rgb[3];     u16 t;     u8 res;     u32 readed;     for(t=0;t< num;t++)     {         res=f_read(file,rgb,3,(UINT*)&readed);         if(res)return 1;//读错误         gif- >colortbl[t]=gif_getrgb565(rgb);     }     return 0; }  //得到逻辑屏幕描述,图像尺寸等 //file:文件; //gif:gif信息; //返回值:0,OK;其他,失败; u8 gif_getinfo(FIL *file,gif89a * gif) {     u32 readed;       u8 res;        res=f_read(file,(u8*)&gif- >gifLSD,7,(UINT*)&readed);     if(res)return 1;     if(gif- >gifLSD.flag&0x80)//存在全局颜色表     {         gif- >numcolors=2< <(gif- >gifLSD.flag&0x07);//得到颜色表大小         if(gif_readcolortbl(file,gif,gif- >numcolors))return 1;//读错误      }           return 0; } //保存全局颜色表     //gif:gif信息; void gif_savegctbl(gif89a* gif) {     u16 i=0;     for(i=0;i< 256;i++)gif- >bkpcolortbl[i]=gif- >colortbl[i];//保存全局颜色. } //恢复全局颜色表     //gif:gif信息; void gif_recovergctbl(gif89a* gif) {     u16 i=0;     for(i=0;i< 256;i++)gif- >colortbl[i]=gif- >bkpcolortbl[i];//恢复全局颜色. } ​ //初始化LZW相关参数        //gif:gif信息; //codesize:lzw码长度 void gif_initlzw(gif89a* gif,u8 codesize)  {     memset((u8 *)gif- >lzw, 0, sizeof(LZW_INFO));     gif- >lzw- >SetCodeSize  = codesize;     gif- >lzw- >CodeSize     = codesize + 1;     gif- >lzw- >ClearCode    = (1 < < codesize);     gif- >lzw- >EndCode      = (1 < < codesize) + 1;     gif- >lzw- >MaxCode      = (1 < < codesize) + 2;     gif- >lzw- >MaxCodeSize  = (1 < < codesize) < < 1;     gif- >lzw- >ReturnClear  = 1;     gif- >lzw- >LastByte     = 2;     gif- >lzw- >sp           = gif- >lzw- >aDecompBuffer; } ​ //读取一个数据块 //gfile:gif文件; //buf:数据缓存区 //maxnum:最大读写数据限制 u16 gif_getdatablock(FIL *gfile,u8 *buf,u16 maxnum)  {     u8 cnt;     u32 readed;     u32 fpos;     f_read(gfile,&cnt,1,(UINT*)&readed);//得到LZW长度                 if(cnt)      {         if (buf)//需要读取          {             if(cnt >maxnum)             {                 fpos=f_tell(gfile);                 f_lseek(gfile,fpos+cnt);//跳过                 return cnt;//直接不读             }             f_read(gfile,buf,cnt,(UINT*)&readed);//得到LZW长度           }else   //直接跳过         {             fpos=f_tell(gfile);             f_lseek(gfile,fpos+cnt);//跳过         }     }     return cnt; } ​ //ReadExtension       //Purpose: //Reads an extension block. One extension block canconsist of several data blocks. //If an unknown extension block occures, the routine failes. //返回值:0,成功; //       其他,失败 u8 gif_readextension(FIL *gfile,gif89a* gif, int *pTransIndex,u8 *pDisposal) {     u8 temp;     u32 readed;       u8 buf[4];       f_read(gfile,&temp,1,(UINT*)&readed);//得到长度           switch(temp)     {         case GIF_PLAINTEXT:         case GIF_APPLICATION:         case GIF_COMMENT:             while(gif_getdatablock(gfile,0,256) >0);         //获取数据块             return 0;         case GIF_GRAPHICCTL://图形控制扩展块             if(gif_getdatablock(gfile,buf,4)!=4)return 1;   //图形控制扩展块的长度必须为4              gif- >delay=(buf[2]< <8)|buf[1];                  //得到延时              *pDisposal=(buf[0] >>2)&0x7;                     //得到处理方法             if((buf[0]&0x1)!=0)*pTransIndex=buf[3];         //透明色表              f_read(gfile,&temp,1,(UINT*)&readed);           //得到LZW长度                if(temp!=0)return 1;                            //读取数据块结束符错误.             return 0;     }     return 1;//错误的数据 } ​ //从LZW缓存中得到下一个LZW码,每个码包含12位 //返回值:< 0,错误. //       其他,正常. int gif_getnextcode(FIL *gfile,gif89a* gif)  {     int i,j,End;     long Result;     if(gif- >lzw- >ReturnClear)     {         //The first code should be a clearcode.         gif- >lzw- >ReturnClear=0;         return gif- >lzw- >ClearCode;     }     End=gif- >lzw- >CurBit+gif- >lzw- >CodeSize;     if(End >=gif- >lzw- >LastBit)     {         int Count;         if(gif- >lzw- >GetDone)return-1;//Error          gif- >lzw- >aBuffer[0]=gif- >lzw- >aBuffer[gif- >lzw- >LastByte-2];         gif- >lzw- >aBuffer[1]=gif- >lzw- >aBuffer[gif- >lzw- >LastByte-1];         if((Count=gif_getdatablock(gfile,&gif- >lzw- >aBuffer[2],300))==0)gif- >lzw- >GetDone=1;         if(Count< 0)return -1;//Error          gif- >lzw- >LastByte=2+Count;         gif- >lzw- >CurBit=(gif- >lzw- >CurBit-gif- >lzw- >LastBit)+16;         gif- >lzw- >LastBit=(2+Count)*8;         End=gif- >lzw- >CurBit+gif- >lzw- >CodeSize;     }     j=End >>3;     i=gif- >lzw- >CurBit >>3;     if(i==j)Result=(long)gif- >lzw- >aBuffer[i];     else if(i+1==j)Result=(long)gif- >lzw- >aBuffer[i]|((long)gif- >lzw- >aBuffer[i+1]< <8);     else Result=(long)gif- >lzw- >aBuffer[i]|((long)gif- >lzw- >aBuffer[i+1]< <8)|((long)gif- >lzw- >aBuffer[i+2]< <16);     Result=(Result >>(gif- >lzw- >CurBit&0x7))&_aMaskTbl[gif- >lzw- >CodeSize];     gif- >lzw- >CurBit+=gif- >lzw- >CodeSize;     return(int)Result; } ​ ​ //得到LZW的下一个码 //返回值:< 0,错误(-1,不成功;-2,读到结束符了) //       >=0,OK.(LZW的第一个码) int gif_getnextbyte(FIL *gfile,gif89a* gif)  {     int i,Code,Incode;     while((Code=gif_getnextcode(gfile,gif)) >=0)     {         if(Code==gif- >lzw- >ClearCode)         {             //Corrupt GIFs can make this happen               if(gif- >lzw- >ClearCode >=(1<
关键词:
中国经济三季报今将揭晓 是否继续“稳得住”?

中国经济三季报今将揭晓 是否继续“稳得住”?

中新网客户端北京10月18日电(记者 李金磊) 中国经济三季报今将揭晓。国家统计局18日将公布前三季度国内生产总值(GDP)、就业、收入、消费等重更多

垃圾分类轮到北京了 你准备好了吗?

垃圾分类轮到北京了 你准备好了吗?

围观了三个月上海的垃圾分类,现在终于轮到北京了!北京的居民不要慌,市场经历了数月的考验后,专业的分类垃圾桶,各类小游戏、小程...更多

3000亿元社保降费带来了什么?企业将节省下的成本花在哪儿?

3000亿元社保降费带来了什么?企业将节省下的成本

3 6万元、240万元、700万元、6000万元、1 5亿元……这些来自企业的新鲜滚烫的数字,有着共同的名字——社保降费。购买设备、扩大...更多

前三季度A股并购数量增长明显 科技企业成为并购重组热门

前三季度A股并购数量增长明显 科技企业成为并购

国家监管部门先后推出了小额快速并购重组审核机制、放开配融补流、缩短增发间隔时间等优化并购重组的利好政策,在创业板借壳、科创...更多

2019第八届中国创新创业大赛全国总决赛开幕 1400余家企业成入围

2019第八届中国创新创业大赛全国总决赛开幕 1400

中新网北京10月15日电 (记者 张素)2019第八届中国创新创业大赛全国总决赛开幕式15日在广州高新区举行,来自全国各地的1400余家优胜企业成功更多

快讯!上海银集中定价合约14日在上金所挂牌

快讯!上海银集中定价合约14日在上金所挂牌

新华社上海10月14日电(记者程思琪、陈云富)在推出黄金集中定价之后,14日,上海黄金交易所推出上海银集中定价合约,为国内市场提供...更多

5部门明确国资充实社保时间表 让“家底”更稳固

5部门明确国资充实社保时间表 让“家底”更稳固

近期以来,划转国有资本充实社保基金的步伐明显加快。9月25日晚间,中国农业银行、中国工商银行发布公告,将其持有的本行股权的10%...更多

增加美元供应量 美联储宣布延长回购计划并扩张资产负债表

增加美元供应量 美联储宣布延长回购计划并扩张资

新华社华盛顿10月11日电(记者杨承霖 高攀)美国联邦储备委员会11日宣布,将9月以来实施的回购计划延长至明年1月,并购入美国短期国...更多

科创板审议再增速 33家企业已成功上市

科创板审议再增速 33家企业已成功上市

中新社上海10月10日电 (高志苗)记者10日晚间从上海证券交易所获悉,科创板股票上市委员会(科创板上市委)将于18日召开2019年第34次审议会议更多

家庭农场发展风生水起:经营产业日趋多元

家庭农场发展风生水起:经营产业日趋多元

记者从农业农村部获悉,目前全国纳入农业农村部名录的家庭农场近60万家,经营土地1 6亿亩,家庭农场数量稳步增长,发展质量日益提...更多

【播资讯】2000年春晚节目单完整_2000年春晚节目单

《2000年中央电视台春节联欢晚会》(简称:2000年央视龙年春晚)是由中更多

ff13冥碑任务攻略_ff13雷霆 当前焦点

1、  卖给收集灵魂种子的魔材商,他会给你药品,买100个给他之后,他更多

全球速看:基于STM32设计的数码相册

项目是基于STM32设计的数码相册,能够通过LCD显示屏解码显示主流的图片更多

焦点速看:年内涨幅近60% 北交所“白马股”获机

6月以来,尽管北证50指数出现较大的调整,但未能阻挡机构调研北交所公更多

热点评!同比增长12.2% 重庆端午消费市场有序升温

人民网重庆6月24日电(记者冯文彦)2023年端午假期,重庆市商务委以“爱更多

环球速递!杰哥是什么梗_杰哥是谁

1、没听过这个名字不过有可能双头龙智力型英雄中文名叫加杰洛。本文就更多

高质量建设耀华中学红桥学校,让孩子在家门口享受

本文转自:人民日报客户端耀华中学红桥学校建筑施工项目如期交付,预计更多

酥李花盛开的地方(关于酥李花盛开的地方的基本详

1、李宜娟,女,1974年9月26日出生于贵州遵义,中国国家话剧院演员,毕更多

外媒:普京与哈萨克斯坦总统通话,介绍目前俄国内

【环球网报道】据英国《卫报》24日消息,哈萨克斯坦总统网站发布声明,更多

工业母机,谁是盈利最强企业?_当前关注

企业盈利能力是指企业获取利润的能力,通常表现为一定时期内企业收益数更多

焦点!多家旅企端午数据出炉 五年最火端午定调

6月24日,多家在线旅游企业发布了2023端午假期旅行总结数据。综合来看更多

上海,紧急刹车!

上海,紧急刹车!,制造业,服务业,上海市更多

环球聚焦:1.06亿人次出游!今年端午节假期国内旅

2023年端午节假期,文化和旅游行业复苏势头强劲。经文化和旅游部数据中更多

多家旅企端午数据出炉 五年最火端午定调

6月24日,多家在线旅游企业发布了2023端午假期旅行总结数据。综合来看更多

俄罗斯顿河畔罗斯托夫市中心交通已恢复

【俄罗斯顿河畔罗斯托夫市中心交通已恢复】当地时间6月24日,俄罗斯顿更多

热点聚焦:三养奶油火鸡面的正确泡法?

仔细看步骤,其实还是很简单的。就是把面煮五分钟,水开后放面,这样面更多

大股东资产“礼包”或埋“暗雷” 交易所刨根问底

对此,深交所要求三川智慧结合本次交易及先前历次股权转让或增资的交易更多

国资委召开央企安全生产紧急视频会议,坚决遏制重

【大河财立方消息】6月23日,国资委召开中央企业安全生产紧急视频会议更多

烦躁的心情的句子说说简短,句句经典至极!

1 如果真的不知道将来要做什么,索性就先做好眼前的事情。只要今天比昨更多

我市开展庆祝第20个世界献血者日活动 天天热闻

旨在普及无偿献血知识,弘扬无私奉献精神,呼吁更多青年人加入无偿献血更多

环球快报:哈密地区有哪些好玩的地方呢_哈密地区有

1、哈密地区的一些有趣的地方:2、天山风景区:3、天山风景名胜区,位更多

沉默年代攻略_怎么过沉默年代-世界关注

1、用枪干掉兰伯特后,我们要做的第一件事就是收集4个硬币,最多存1美更多

OpenAI首席执行官表态支持欧盟AI监管-热消息

【OpenAI首席执行官表态支持欧盟AI监管】当地时间6月23日,欧盟产业主更多

中国最大内陆淡水湖螃蟹“抢鲜”上市

点击观看近日,我国最大内陆淡水湖新疆博斯腾湖螃蟹开始上市,绿意更多

环球新动态:工业机器人的心脏!精密减速器龙头一

财联社6月24日讯(编辑若宇)机构指出,除了人形机器人,更加看好“机更多

五年级下册六单元作文

乐乐学教研网精心为你收集整理了五年级下册六单元作文(锦集18篇),希更多

日本外务大臣在巴黎与非洲国家首脑会面 讨论俄乌

【日本外务大臣在巴黎与非洲国家首脑会面讨论俄乌冲突、粮食安全等议题更多

天天微速讯:安全生产月|筑牢安全防线!这个街道

为迅速落实国务院、市、区关于燃气安全专项排查整治要求,6月23日,徐更多

猫腻作品新书 猫腻作品顺序 天天快看点

1、猫腻,起点中文网白金作家,湖北人,其文风细腻,文学性很强。2、曾更多

赖清德推学费补助政见 国民党轰政策性买票

民进党“总统”参选人赖清德20日抛补助私立大专生每年学费2 5万元,隔更多

普京发表讲话:俄武装力量已收到命令,消灭那些组

普京发表讲话:俄武装力量已收到命令,消灭那些组织武装暴动的人,普京,更多

每日短讯:海通策略:下半年行情望由基本面主导

证券时报网讯,海通证券策略团队研报认为,从估值指标和情绪指标看,市更多

平凡的世界读后感ppt模板下载_平凡的世界读后感pp

1、感悟平凡——读《平凡的世界》有感平凡,是生活的本色。2、我们每一更多

Oz病毒!日本确认全球首例死亡病例_通过蜱虫传播

日本厚生劳动省日前发布消息,确认一名70多岁的女性成为全球首例因感染更多

每日热点:出租房屋合同范本_大港房屋出租

1、天津滨海新区很大,有2200平方公里。2、塘沽,汉沽,大港,天津开发区都更多

看热讯:可莉皮肤引热议!妮露时装太美了,4.0-4.

“原神”可莉皮肤引热议!妮露时装太美了,4 0-4 3卡池,璃月冰少女首更多

全球今亮点!企业社会责任理论主要有_企业社会责

1、社会责任论的诞生具有其特定的原因及社会背景。2、随着资本主义的快更多

美国进口净水器哪个品牌比较好?进口纯水机品牌凯

随着环境污染加剧,净水器行业的快速发展,越来越多的家庭离不开净水器更多

焦点热讯:婴儿发烧怎么办可以用酒擦吗_婴儿发烧怎

1、您好,发烧的处理  宝宝发高烧时可能没精打采、食欲不振,烦燥及更多

世界热文:外媒:“瓦格纳”声称控制俄沃罗涅日地

【外媒:“瓦格纳”声称控制俄沃罗涅日地区多个军事设施】据美国有线电更多

功夫酸商品报价动态(2023-06-24)

交易商品牌 产地交货地最新报价功夫酸 优等品上海溶和化工有限公司国更多

狼队伤情更新内维斯预计五月回归塞梅多赫维尔恢复

3月23日讯在此前对阵利兹联队的比赛中,狼队中场鲁本-内维斯膝盖内侧副更多

150城、2.8亿人次…惠民保火爆后,如何持续发展?

惠民保(即城市定制型商业医疗保险)自2020年开始在全国范围内快速发展更多

从水产养殖专业研究生到中福会幼儿园教师,这个跨

“洋洋爸爸,今天上午的海洋小课堂里洋洋特别活跃,他说家里的水族缸可更多

宥胜老婆沉默三天后发声:努力扛好身上的责任

搜狐娱乐讯6越21日,据媒体报道,宥胜老婆在沉默3天后,今在社交平台发更多

神漫画总换码是多少?_神漫画在哪修改账号昵称

解答:神漫画在哪修改账号昵称1、先打开软件后,点击右下角我的。如图更多

boot ini文件功能是什么_boot ini在哪-环球观热点

1、boot ini在哪里2、不知道大家有没有遇到boot ini文件非法的错误信息更多

金融人涌向寺庙、看“八字”投资、风水研报,金融

当代金融人也不能免俗,“去寺庙拜拜”,俨然成了职场新潮流。但殊不知更多

携程:端午假期国内门票订单较2019年翻倍_今日快讯

【携程:端午假期国内门票订单较2019年翻倍】从数据来看,部分旅游业态更多

微头条丨“绿”见未来

6月21日,由中国电力建设企业协会主办的中国电力建设发展大会“电力建更多

绯忍伝呀宇种全集观看_绯忍伝 呀宇种|当前速递

1、没有第二集,在出第一集的花了6,7年的时间把制作公司给拖垮了 制作公更多

备战今夏“大烤” 浙江能源保供套餐上新:白浙特

【备战今夏“大烤”浙江能源保供套餐上新:白浙特高压全容量投产】白鹤更多

焦点速看:农业银行董事长谷澍:科创金融走上快车

金融在科技创新和相关产业化过程中,如何发挥好纽带和催化作用?6月8日更多

五香毛豆角怎样煮?|天天头条

喝酒不整毛豆,难道喝寡酒吗?作为嗜酒如命的老爸,我可是受够了他。不更多

苏州地铁11号线开通运营,苏沪地铁在花桥站互通

界面新闻从苏州轨道交通集团有限公司(以下简称“苏州轨道”)获悉,6更多

咖喱咖喱歌词简谱-咖喱咖喱歌词图片 全球热门

1、牛奶咖啡《咖喱咖喱》歌词:泰国新加坡印度尼西亚咖喱肉骨茶印尼九更多

每日速看!耒阳:同饮午时茶 浓浓端午情

午时茶是一种以绿茶、红茶与中草药配伍而制作的药茶。红网时刻衡阳6月2更多

俄媒:不明身份的武装力量正前往俄南部军区司令部

【俄媒:不明身份的武装力量正前往俄南部军区司令部所在地集结】当地时更多

“大同梦园·富厚娄底”首届凤文化节城乡文艺大赛

娄底新闻网讯(通讯员朱雄军刘杰阳童芸)赓续历史文脉,演绎时代心声。更多

全网最全“马斯克预言”,不敢多看

居然都被他说中了。文|华商韬略张宇彤马斯克又火了。6月21号,他在社交更多

女人味连衣裙夏装_女人味连衣裙

1、连衣裙总是有着诱人的魅力,不仅穿着方便,而且容易穿上时尚感。2、更多

焦点观察:湖北武汉:廉情抄报压实责任

近日,湖北省武汉市新洲区纪委监委向区政府相关负责人制发廉情抄报单,更多

世界热消息:俄罗斯莫斯科市长:目前莫斯科正在进

当地时间24日,今日俄罗斯电视台援引俄罗斯莫斯科市市长索比亚宁的话报更多

实时焦点:山西省五台县发布高温黄色预警

五台县气象台2023年06月24日09时46分发布高温黄色预警信号,预警区域:更多

“低价股群体”领跌变抗跌 掘金可选盈利与国资控

最近3个多月,过去两年风光无限的“超跌低价股”遭到重创。通达信数据更多

建业地产全面停止境外债务支付,将全力保交付、保

6月23日晚间,建业地产(HK00832,股价0 128港元,市值3 89亿港元)发更多

都市剧《故乡,别来无恙》,戳中你内心的情感。-

都市剧《故乡,别来无恙》,戳中你内心的情感。,他乡,都市剧,电视剧,爱更多

计算机之父图灵的故事_计算机之父 热点评

1、艾伦·麦席森·图灵(AlanMathisonTuring,1912年6月23日-1954年6更多

曼奇尼:弗拉泰西需要参加俱乐部欧战,踢英超对托

直播吧6月24日讯意大利国家队主帅曼奇尼在接受采访时,谈到了欧青赛、更多

节令美味贺端阳!古人吃粽子有啥讲究? 播资讯

“粽子香,香厨房。艾叶香,香满堂。桃枝插在大门上,出门一望麦儿黄。更多

【全球新要闻】70岁重庆首富“造系”:智翔金泰上

本文来源:时代周报作者:梁春富智翔金泰(688443 SH)上市即破发。6月更多

梅西36岁了!夺冠封神远离欧洲足坛!享受足球快乐

当年的阿根廷小跳蚤,如今则被球迷称为梅球王,他让所有人见证了足球历更多

财通证券给予科前生物增持评级,大型兽用生物制品

财通证券06月24日发布研报称,给予科前生物(688526 SH,最新价:22 78更多

环球看热讯:端午防火“不打烊” 西宁消防为民保

为确保端午节期间的消防安全,纵深推进消防安全重大风险隐患专项排查整更多

环球短讯!怎样写好钢笔字

如何提高钢笔字书写水平是许多人关注的问题。下面将介绍一些钢笔字练习更多

当前滚动:期待端午假期旅游消费再火爆

五一假期,旅游消费十分火爆,火爆度超过了疫情前的2019年,广大居民彻更多

海上“巨无霸”成功试航停靠大连|全球新消息

6月21日,大连出入境边防检查站为“中远川崎336(NE336)”轮办理了入境更多

国铁集团:全国铁路今日预计发送旅客1515万人次

6月24日,澎湃新闻记者从中国国家铁路集团有限公司(下称“国铁集团”更多

天天观速讯丨世界最大iPhone被主播造出来 比iPho

近日,YouTube主播MatthewBeem发布了一段名为《Ibuilttheworld & 039;slarge更多

“空中出租车”亮相第54届巴黎航展

这款由德国飞行器制造商开发的“空中出租车”有两个座位,以机载电源为更多

财通证券给予东芯股份增持评级,中小容量存储芯片

财通证券06月24日发布研报称,给予东芯股份(688110 SH,最新价:34 95更多

日本报告全球首例人感染并死于Oz病毒的病例_当前

患者居家观察中病情恶化被送医院,住院第20天出现意识障碍,第26天突发更多

焦点日报:龙鱼掉眼有什么危害_如何恢复龙鱼掉眼

导读:如何恢复龙鱼掉眼?下文是小编给大家带来的介绍。需要把龙鱼放在更多

济南疾控最新提醒

近日济南遭遇持续高温天气全市“热到发紫”高温预警升级为红色据济南气更多

当前信息:河北廊坊打造首都都市圈生活服务保障基

廊坊打造首都都市圈生活服务保障基地(主题)北京日报记者李如意通讯员更多

下周115股面临解禁 合计解禁市值超千亿_世界观速讯

下周将有115只股解禁,按照最新收盘价计算,合计解禁市值1477 11亿元。更多

仪器仪表龙头股有哪些,仪器仪表概念股名单(2023

仪器仪表龙头股有哪些,仪器仪表概念股名单(2023 6 24),仪器仪表龙头更多

和东宫一样虐心的小说(类似东宫的虐心小说)

1、夏有乔木,雅望天堂。2、岁月忽已暮。本文就为大家分享到这里,希望更多

江苏多所高校举行毕业典礼 离别盼繁花似锦 再会

一句毕业快乐,一次微笑与合影,一场告别的宴席……拨穗的那一刻,毕业更多

每日热门:研究显示全球约九成过量碳排放源自美国

【研究显示全球约九成过量碳排放源自美国等发达国家】科学界普遍认为,更多

环球最资讯丨白玉兰奖看点多,女星红毯千姿百态,

白玉兰奖看点多,女星红毯千姿百态,吴越拿下大奖,赵丽颖可惜了更多

撩妹约会聊天套路的句子_约会撩妹子套路的句子

你吃东西的样子真可爱,是练过吗?我发现你不适合谈恋爱,适合结婚。我更多

宁夏建材关于披露重大资产重组预案后的进展公告

近日,宁夏建材公告了公司披露重大资产重组预案后的进展。原文如下:本更多

足球流氓?成都重庆球迷爆发冲突 警察都拦不住

搜狐体育消息,北京时间6月24日,足协杯第三轮,成都蓉城惨遭重庆铜梁更多

天天通讯!茂名网友坐公交一波三折,呼吁加强管理

有网友反映,前天17:50计划坐206公交车,结果等了两趟,车到那显示还更多

宋江怎么死的_宋江个人介绍

1、奸臣宋江被高俅等人设计用毒酒杀死。2、宋江(1073-1124),本名,别更多

电力央企上演新能源资产分拆上市热潮 扎堆IPO为

电力央企正在上演一股新能源业务独立上市的新风潮。据澎湃新闻观察,由更多

全球视讯!印尼雅万高铁联调联试时速达到350公里

6月22日,在印度尼西亚万隆,综合检测列车行驶在雅万高铁上(无人机照更多

天天速读:群众艺术馆_关于群众艺术馆介绍

1、群众艺术馆是指国家设立的省、地、市一级的群众文化艺术事业机构。2更多

状态回暖找回信心?梁靖崑卸下压力有目标!国乒格

新生代球员的表现可圈可点,而国乒主力也即将亮相,在突尼斯站比赛之后更多