完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include <STM32f10x_lib.h>
#include "sys.h" #include "usart.h" #include "delay.h" #include "led.h" #include "lcd.h" #include "flash.h" #include "mmc_sd.h" #include "fat.h" //Mini STM32开发板范例代码24 //汉字显示 实验 //发烧友@ALIENTEK //技术论坛:www.openedv.com int main(void) { u16 cot; FileInfoStruct *file; Stm32_Clock_Init(9);//系统时钟设置 delay_init(72); //延时初始化 uart_init(72,9600); //串口1初始化 LCD_Init(); //初始化液晶 LED_Init(); //LED初始化 SPI_Flash_Init(); //SPI FLASH初始化 if(SD_Init()) LCD_ShowString(60,20,"SDT ERROR"); if(FAT_Init()) LCD_ShowString(60,40,"FAT ERROR"); cot=1; //查找SD卡根目录 的第cot个txt文件,并通过串口打印出来 Get_File_Info(FirstDirClust,file,T_TXT,&cot); printf("文本名:%sn",file->F_ShortName); } 下载到板子后通过串口知道 这个程序会死在Get_File_Info(FirstDirClust,file,T_TXT,&cot)这个函数中 所包含的CopyDirentruyItem(FileInfoStruct *Desti,direntry *Source)函数中, void CopyDirentruyItem(FileInfoStruct *Desti,direntry *Source) { u8 i; u8 t; printf("进入CopyDirentruyItem"); for(i=0;i<8;i++) Desti->F_ShortName=Source->deName;//复制短文件名 printf("过了一个"); .......... } 而我看原子的综合测试例程 电子书部分 的代码却能成功进入此函数......菜鸟学FAT有一段时间了...连个查查看SD卡根目录都不行....求指点 |
|
相关推荐
6个回答
|
|
就是查不出是什么问题...编译不报错,没警告.........下到板子上就是死在CopyDirentruyItem(FileInfoStruct *Desti,direntry *Source)函数中
|
|
|
|
FileInfoStruct *file;
没分配内存. 导致内存溢出引起HARD FAULT. 改为: FileInfoStruct file; 调用的时候,用&file. |
|
|
|
原子哥好样的!!!知道了,果然是那个问题........原子哥想你学习了!!要回去好好学C语言了.....
|
|
|
|
原子哥,我回去看了看你的综合测试程序,Read_Book程序中你也是FileInfoStruct *FileInfo;这样定义的!!!!再者File_Browse程序中你也是这样定义的!!!你的却也没问题,也不会内存溢出.......也都用了Get_File_Info(......)函数。
void Read_Book(FileInfoStruct *FileName); //文本浏览器(.txt/.c/.h/.lrc) //支持FAT32/16文件系统的浏览. void Ebook_Play(void) { FileInfoStruct *FileInfo; u16 index=0; //当前选择的文件编号 //从根目录开始浏览 if(FAT32_Enable)Cur_Dir_Cluster=FirstDirClust;//根目录簇号 else Cur_Dir_Cluster=0; Fat_Dir_Cluster=Cur_Dir_Cluster;//父目录就是当前目录 while(1) { POINT_COLOR=RED; Load_Gui_Bro("选择");//显示GUI界面 Show_Str(88,2,"电子图书",16,0x01);//叠加模式,非自动换行 index=File_Browse(T_LRC|T_TXT|T_C|T_H);//浏览文件夹 if(!index)return;//结束浏览,退出此功能!!!!! Pen_Point.Key_Sta=Key_Up; //释放显示期间的触发 FileInfo=&F_Info[0];//开辟暂存空间. Get_File_Info(Cur_Dir_Cluster,FileInfo,T_LRC|T_TXT|T_C|T_H,&index);//得到这张图片的信息 Read_Book(FileInfo);//读取TXT文件 } } u16 File_Browse(u32 file_type) { FileInfoStruct *FileInfo; u16 folder_cnt;//文件夹的个数 u16 des_cnt; //目标文件的个数 u8 fcnt; //显示的文件数目 u16 temp; u16 total_file;//总文件数目 u16 pos_cnt;//当前文件号 1~folder_cnt+des_cnt u8 key; Reset: POINT_COLOR=BLUE; //蓝色笔头使用 folder_cnt=0;des_cnt=0;fcnt=0;key=0;pos_cnt=0; Get_File_Info(Cur_Dir_Cluster,FileInfo,T_FILE,&folder_cnt);//得到当前目录下文件夹的个数 Get_File_Info(Cur_Dir_Cluster,FileInfo,file_type,&des_cnt);//得到当前目录下目标文件的个数 total_file=des_cnt+folder_cnt;//总的文件数目=文件夹数目+目标文件数目 while(1) { if(pos_cnt .............. ..............> |
|
|
|
请注意这句话:FileInfo=&F_Info[0];//开辟暂存空间.
|
|
|
|
原来如此,多谢原子哥耐心讲解!!!!
|
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1780 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1621 浏览 1 评论
1081 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
728 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1679 浏览 2 评论
1938浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
731浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
570浏览 3评论
596浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
556浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 18:49 , Processed in 1.145609 second(s), Total 86, Slave 69 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号