ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:451.79KB ,
资源ID:5087111      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-5087111.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于STM32的图像显示系统Word下载.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

基于STM32的图像显示系统Word下载.docx

1、可以通过按键返回到上一幅图片;初始状态显示本次课设的基本信息;可对显示信息的汉字进行自定义。2.3 系统的结构框图 STM322.1 系统结构框图3 详细设计3.1 硬件设计ALIENTEK MiniSTM32 开发板简介ALIENTEK MiniSTM32 开发板是一款迷你型的开发板,小巧而不小气,简约而不简单。它的外观尺寸只有8cm*10cm 大小,板子的设计充分考虑了成本与功能这两个矛盾面,再结合实际使用的经验及STM32的特点,可有可无的选择性价比最高的留下,最终确定了这样的设计。其资源丰富,设计灵活。 特点包括: 1)小巧。整个板子尺寸为8cm*10cm*2cm。 2)灵活。板上除晶

2、振外的所有的IO 口全部引出,特别还有GPIOA 和GPIOB 的IO 口是按顺序引出的,可以极大的方便大家扩展及使用,另外板载独特的一键下载功能,避免了频繁设置B0、B1 带来的麻烦,直接在电脑上一键下载。 3)资源丰富。板载十多种外设及接口,可以充分挖掘STM32 的潜质。 4)质量过硬。沉金PCB+全新优质元器件+定制全铜镀金排针/排座+ 电源TVS 保护,坚若磐石。简介开机的时候先检测SD 卡是否存在,然后初始化FAT 文件系统,在这之后开始查找根目录下的PICTURE 文件夹,如果找到则显示该文件夹下面的图片,循环显示,通过按KEY0 和KEY1 可以快速浏览下一张和上一张。如果未找

3、到图片文件夹/图片,则提示错误。同样我们也是用LED0 来指示程序正在运行。 所要用到的硬件资源如下: 1)STM32。 2)外部LED0。 3)TFTLCD 液晶模块。 4)KEY0,KEY1。5)SD 卡。1、 STM32的简单介绍图3.1 STM32原理图选择STM32F103RBT6 作为MCU,原因是其性价比高,128K FLASH、20K SRAM、2 个SPI、3 个串口、1 个USB、1 个CAN、2 个12 位的ADC、RTC、51 个可用IO 脚,所以我们选择了它作为我们的主芯片。2、 外部LED0图3.2 外部LED0原理图其中PWR 是系统电源指示灯,为蓝色。LED0

4、和LED1 分别接在PA8 和PD2 上,PA8 还可以通过TIM1 的通道1 的PWM 输出来控制DS0 的亮度。3、 TFTLCD 液晶模块图3.3 TFTLCD 液晶显示原理图TFT_LCD 是一个通用的液晶模块接口。OLED 是一个给OLED 显示模块供电的接口,它和TFT_LCD 拼接在一起。当使用2.4/2.8的LCD 时,我们接到TFT_LCD 上就可以了,而当我们使用ALIENTEK的OLED 模块时,则接OLED 排阵做电源,同时会连接到TFT_LCD 上的部分管脚,从而实现OLED 与MCU 的连接。4、 按键图3.4 按键输入原理图KEY0 和KEY1 用作普通按键输入,

5、分别连接在PA13 和PA15 上,他们都连接在了JTAG相关的引脚上(KEY0 还连接在SWDIO 上),KEY0 和KEY1 还和PS/2 的DAT 和CLK 线共用,他们都通过JTAG 的上拉电阻来提供上拉。WK_UP 按键连接到PA0(STM32 的WKUP 引脚),它除了可以用作普通输入按键外,还可以用作STM32 的唤醒输入。这个按键是高电平触发的。5、 SD 卡图3.5 SD卡部分原理图插入SD 卡可以外扩大容量存储设备,可以用来记录数据。SD 卡我们使用的是SPI 模式通信,SD 卡的SPI 接口连接到STM32 的SPI1 上,SD_CS 接在PA3 上。3.2 软件设计图片

6、显示系统需要有STM32开发板配合SD卡使用,因此其程序需要分为以下几个文件夹,硬件组成文件HARDWARE系统文,可以用来显示汉字的TEXT文件,用来识别图片的JPEG文件用来读取 SD 卡上的图片文件的FAT文件以及存放主程序文件USER文件件,和STM32的系统文件SYSFILE。主函数部分int main(void) u8 i; u8 key; FileInfoStruct *FileInfo;u16 pic_cnt=0; u16 index=0; u16 time=0;Stm32_Clock_Init(9); delay_init(72); uart_init(72,9600); L

7、CD_Init(); KEY_Init(); LED_Init(); SPI_Flash_Init(); if(Font_Init() POINT_COLOR=RED; LCD_ShowString(60,50,Mini STM32); LCD_ShowString(60,70,Font ERROR while(1); while(SysInfoGet(1) FAT_Init(); SD_Initialize(); LED0=!LED0; LCD_Fill(60,130,240,170,WHITE); delay_ms(500); Cur_Dir_Cluster=PICCLUSTER; whi

8、le(1) pic_cnt=0;Get_File_Info(Cur_Dir_Cluster,FileInfo,T_JPEG|T_JPG|T_BMP,&pic_cnt); if(pic_cnt=0) LCD_Clear(WHITE); while(1) if(time%2=0) else LCD_Clear(WHITE); time+; delay_ms(300); FileInfo=&F_Info0;. index=1; Get_File_Info(Cur_Dir_Cluster,index); LCD_Clear(WHITE); AI_LoadPicFile(FileInfo,0,0,240

9、,320); POINT_COLOR=RED; Show_Str(0,0,FileInfo-F_Name,16,1); key=KEY_Scan(); if(key=1) break; else if(key=2) if(index1)index-=2; else index=pic_cnt-1; break; delay_ms(1); if(time%100=0) LED0=! if(time3000) time=0; break; index+; if(indexpic_cnt) index=1; 3.2.2 硬件部分程序void KEY_Init(void) / 键盘相应程序 RCC-A

10、PB2ENR|=1CRL&=0XFFFFFFF0;CRL|=0X00000008;CRH&=0X0F0FFFFF;CRH|=0X80800000; ODR|=15;CRH|=0X00000003;8; GPIOD-=0XFFFFF0FF;CRL|=0X00000300;GPIOD-void SPIx_Init(void) /SD卡驱动程序12;=0X000FFFFF;CRL|=0XBBB00000;ODR|=0X7CR1|=0CR1|=19;11;1;0;CR1|=76; SPIx_ReadWriteByte(0xff); void SPIx_SetSpeed(u8 SpeedSet) SPI

11、1-CR1& = 0XFFC7; switch(SpeedSet) case SPI_SPEED_2: SPI1- break; case SPI_SPEED_4: case SPI_SPEED_8:CR1|=2 break; case SPI_SPEED_16:CR1|=3SR&1200) return 0; DR=TxData; retry=0;0)=0) return SPI1-DR;3.2.3 识别图片FileInfoStruct *CurFile; /当前解码/操作的文件void AI_Drow_Init(void) float temp,temp1; temp = (float)P

12、ICINFO.S_Width/PICINFO.ImgWidth; temp1 = (float)PICINFO.S_Height/PICINFO.ImgHeight; if(temp1)temp1=1; /使图片处于所给区域的中间 PICINFO.S_XOFF+=(PICINFO.S_Width-temp1*PICINFO.ImgWidth)/2; PICINFO.S_YOFF+=(PICINFO.S_Height-temp1*PICINFO.ImgHeight)/2; temp1*=10000; /扩大10000倍 PICINFO.Div_Fac=temp1; PICINFO.staticx

13、=500; PICINFO.staticy=500; /放到一个不可能的值上面 /初始化量化表,全部清零 void InitTable(void) short i,j; sizei=sizej=0; PICINFO.ImgWidth=PICINFO.ImgHeight=0; rrun=vvalue=0; BitPos=0; CurByte=0; IntervalFlag=FALSE; restart=0; for(i=0;ii+) /量化表 for(j=0;j64;j+) qt_tableij=0; comp_num=0; HufTabIndex=0;/将解出的字按RGB 形式存储void S

14、toreBuffer(void) short i=0,j=0; unsigned char R,G,B;int y,u,v,rr,gg,bb; u16 color; u16 realx=sizej; u16 realy=0; for(i=0;SampRate_Y_V*8;i+) if(sizei+i)PICINFO.ImgHeight) realy=PICINFO.Div_Fac*(sizei+i)/10000; if (!IsElementOk(realx,realy,0) continue; for (j=0;SampRate_Y_H*8;j+) if(sizej+j)PICINFO.Im

15、gWidth) realx=PICINFO.Div_Fac*(sizej+j)/10000;IsElementOk(realx,realy,1) continue; y=Yi*8*SampRate_Y_H+j; u=U(i/V_YtoU)*8*SampRate_Y_H+j/H_YtoU; v=V(i/V_YtoV)*8*SampRate_Y_H+j/H_YtoV; rr=(y gg=(y bb=(y R=(unsigned char)rr;G=(unsigned char)gg;B=(unsigned char)bb; if (rr&0xffffff00) if (rr255) R=255;

16、else if (rr255) G=255; else if (gg255) B=255; else if (bb color=color2); color |=(B3);POINT_COLOR=color;LCD_DrawPoint(realx+PICINFO.S_XOFF,realy+PICINFO.S_YOFF); else break; void IQtIZzMCUComponent(short flag) short H,VV; short i,j;short *pQtZzMCUBuffer; short *pMCUBuffer;switch(flag) case 0: H=Samp

17、Rate_Y_H;VV=SampRate_Y_V; pMCUBuffer=MCUBuffer;pQtZzMCUBuffer=QtZzMCUBuffer; case 1: H=SampRate_U_H;VV=SampRate_U_V; pMCUBuffer=MCUBuffer+Y_in_MCU*64; pQtZzMCUBuffer=QtZzMCUBuffer+Y_in_MCU*64; case 2: H=SampRate_V_H;VV=SampRate_V_V; pMCUBuffer = MCUBuffer + (Y_in_MCU+U_in_MCU)*64; pQtZzMCUBuffer = Q

18、tZzMCUBuffer + (Y_in_MCU+U_in_MCU)*64;break; for (i=0;VV;H;j+)IQtIZzBlock(pMCUBuffer+(i*H+j)*64, pQtZzMCUBuffer+(i*H+j)*64,flag);3.2.4 FAT系统DWORD FirstDirClust; DWORD FirstDataSector;WORD BytesPerSector; DWORD FATsectors;WORD SectorsPerClust; DWORD FirstFATSector;DWORD FirstDirSector; fat32DWORD Roo

19、tDirSectors;DWORD RootDirCount;BYTE FAT32_Enable;DWORD Cur_Dir_Cluster;FAT_TABLE FAT_TAB;FileInfoStruct F_Info3;u8 fat_buffer512;u8 LongNameBufferMAX_LONG_NAME_SIZE;BOOL LongNameFlag = 0;const unsigned char *filetype23= MP1,MP2MP3MP4M4A3GP3G2OGGACCWMAWAV,MIDFLA, LRCTXTC H FONSYSBMPJPGJPE ;3.2.5 程序流程图 Y N图3.6 程序流程图4 实验结果及分析4.1 硬件实验结果图4.1 初始化显示屏 图4.2 显示图片4.2 结果分析接通电源后,正确的读取SD卡信息后,LCD液晶显示屏上显示实验题目及制作成员等基本信息。随后自动跳转到图片显示模式。不对实验板进行操作时,每3秒会跳转到下一张图片,显示图片及相应的图片信息,由于图片的大小及像素不同,刷新显示的速度也有所不同,图片显示完毕后会伴随LED小灯闪

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2