为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

文件系统SD卡Fatfs文件系统BMP文件读取显示

2018-09-10 5页 doc 219KB 38阅读

用户头像

is_836453

暂无简介

举报
文件系统SD卡Fatfs文件系统BMP文件读取显示SD卡Fatfs文件系统BMP文件读取显示   2011-06-08 12:23:03|  分类: STM32_MDK |  标签: |字号大中小 订阅 调试了一段时间才调试通过,代码是移植别人的。这段代码在网上很多,现在测试通过了,但是有几个小问题要注意。 首先说下硬件平台是奋斗的stm32开发板,320*240的2.4寸TFT(有点小, 说下遇到的问题: 1. startup_stm32f10x_hd.s 文件里再次修改堆栈大小,上次调试SD卡的时候就已经调整了,这次再次调整,见下图。但是还是有个问题,板子上...
文件系统SD卡Fatfs文件系统BMP文件读取显示
SD卡Fatfs文件系统BMP文件读取显示   2011-06-08 12:23:03|  分类: STM32_MDK |  标签: |字号大中小 订阅 调试了一段时间才调试通过,代码是移植别人的。这段代码在网上很多,现在测试通过了,但是有几个小问题要注意。 首先说下硬件平台是奋斗的stm32开发板,320*240的2.4寸TFT(有点小, 说下遇到的问题: 1. startup_stm32f10x_hd.s 文件里再次修改堆栈大小,上次调试SD卡的时候就已经调整了,这次再次调整,见下图。但是还是有个问题,板子上啊的stm32f103vet6 是512K的ram。按理说堆栈可以调整到 “Stack_Size      EQU      0x00080000 ”   但是却只能调整到0x0000F0F0这个位置,大家有谁知道的可以告诉我。    在操作SD卡的时候,读取到BMP文件的内容要先释放到一个数组空间里,这个空间大小要设定好,否则会出莫名奇妙的问题。  BMP图片的文件名不能太长,否则无法读取,这个应该是Fatfs的问题,没有具体测试是几个,但是不能超过10个英文字母(包括10个)。  显示的格式要实现调整好,像我这块屏是320*240的,事先用画图进行修改好,他们的尺寸值要是8的倍数,否则读取时会出错。下面是修改的方法,(估计大家都会,就是怕自己忘记了),见下图。   下面就是把代码贴出来,这个代码只是移植成功了,但是BMP文件的格式没有去细致了解,中间一部分代码没有去深入的探究其原因。 C语言: Codee#20097 #include "TFCard_BMP.h" /*==================================================================                         用到的变量及宏定义 ==================================================================*/ BMP_HEAD  bmp;   //图片文件头 BMP_POINT point; /*================================================================== * Function    : RGB888ToRGB565 * Description    : 把24位图变成16位图 * Input Para    : unsigned char r , unsigned char g , unsigned char b * Output Para    : void * Return Value: 颜色值 ==================================================================*/ u32 RGB888ToRGB565(unsigned char r , unsigned char g , unsigned char b) {     return (u32) (r & 0xF8) << 8 | (g & 0xFC) << 3 | (b & 0xF8) >> 3; } /*================================================================== * Function    : DrawPixel * Description    : 画点函数,在TFT的某一点上画一个颜色点 * Input Para    : unsigned int x , unsigned int y , int Color  ===》 x坐标,y坐标,颜色值 * Output Para    : void * Return Value: void ==================================================================*/ void DrawPixel(unsigned int x , unsigned int y , int Color) {     LCD_SetGramPoint(x,y);     LCD_WR_Data(Color);        } /*================================================================== * Function    : Show_BMP * Description    : 显示BMP格式的文件,分为图片和图标,图片尺寸是240*320是完全显示,图标只显示内容,其他白色的部分维持原来的颜色 * Input Para    : unsigned char type , unsigned int point_x , unsigned int point_y , char *path          ===》   显示的类型:PCITURE图片,ICON图标 ,x轴起始点 ,y轴起始点 ,图片在SD卡里的路径 * Output Para    : void * Return Value: void ==================================================================*/ void Show_BMP( unsigned char type , unsigned int point_x , unsigned int point_y , char *path ) {     FATFS fs;            // 磁盘挂载点     FIL  fil;           // 文件打开点              FRESULT res;        // 返回值类型结构体     //unsigned char buffer[4096*4];  // file copy buffer     unsigned char buffer[50000];     // 这个数组和堆栈空间大小直接相关     unsigned int  br;                // File R/W count     unsigned long tx,ty,r_data,g_data,b_data;     disk_initialize(0);                                                  // 初始化磁盘     res = f_mount(0,&fs);                                              // 挂载设备     while(1)     {         res = f_open(&fil , path , FA_OPEN_EXISTING | FA_READ);          // 读取图标路径         res = f_read(&fil , &bmp , sizeof(bmp),&br);                   // 读取文件         if((bmp.pic_head[0]=='B')&&(bmp.pic_head[1]=='M'))              // 判断是不是BMP文件         {             res = f_lseek(&fil , ((bmp.pic_data_address_h<<16)|bmp.pic_data_address_l)); // 采用了Windows的BMP格式,BMP原点在左下角             for(ty=0;ty
/
本文档为【文件系统SD卡Fatfs文件系统BMP文件读取显示】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索