OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8004|回复: 4

FAT32死机问题

[复制链接]

5

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2013-11-12
在线时间
0 小时
发表于 2015-5-8 18:06:15 | 显示全部楼层 |阅读模式
5金钱
大家好,最近在学习如何使用FAT32储存文件,但是遇到一个问题,建立多层文件夹没问题,建立很多.txt也没问题,但是当我将下面的程序运行时,却出现死机的情况,不知道是什么原因?求高手指点。
/////////////////////////////////////////////////
void notepad_new_pathname_date(u8* pname_date)                              //建立一个存储每天降雨量的文件夹
{  
calendar_get_time(&calendar);
calendar_get_date(&calendar); 
sprintf((char*)pname_date,"0:监测第%02d天",calendar.w_date);

void notepad_new_pathname_date_txt(u8 *pname_date_txt)                     //建立一个存储每天降雨量的txt文件
{  
calendar_get_time(&calendar);
calendar_get_date(&calendar); 
sprintf((char*)pname_date_txt,"0:监测第%02d天/第%02d天的降雨量.txt",calendar.w_date,calendar.w_date);

/////////////////////////////////////////////////
void notepad_new_pathname_hour(u8 *pname_hour)                             //建立一个存储每小时降雨量的文件夹
{  
calendar_get_time(&calendar);
calendar_get_date(&calendar); 
sprintf((char*)pname_hour,"0:监测第%02d天/第%02d天第%02d小时",calendar.w_date,calendar.w_date,calendar.hour);

void notepad_new_pathname_hour_txt(u8 *pname_hour_txt)                    //建立一个存储每小时降雨量的txt文件
{  
calendar_get_time(&calendar);
calendar_get_date(&calendar); 
sprintf((char*)pname_hour_txt,"0:监测第%02d天/第%02d天第%02d小时/第%02d天第%02d小时的降雨量.txt",calendar.w_date,calendar.w_date,calendar.hour,calendar.w_date,calendar.hour);

////////////////////////////////////////////////
void notepad_new_pathname_min(u8 *pname_min)                              //建立一个存储每分钟降雨量的文件夹        
{  
calendar_get_time(&calendar);
calendar_get_date(&calendar); 
sprintf((char*)pname_min,"0:监测第%02d天/第%02d天第%02d小时/第%02d天第%02d小时第%02d分钟",calendar.w_date,calendar.w_date,calendar.hour,calendar.w_date,calendar.hour,calendar.min);

void notepad_new_pathname_min_txt(u8 *pname_min_txt)                       //建立一个存储每分钟降雨量的txt文件 
{  
calendar_get_time(&calendar);
calendar_get_date(&calendar); 
sprintf((char*)pname_min_txt,"0:监测第%02d天/第%02d天第%02d小时/第%02d天第%02d小时第%02d分钟/第%02d天第%02d小时第%02d分钟的降雨量.txt",calendar.w_date,calendar.w_date,calendar.hour,calendar.w_date,calendar.hour,calendar.min,calendar.w_date,calendar.hour,calendar.min);

////////////////////////////////////////////////
void notepad_new_pathname_sec(u8 *pname_sec)                              //建立一个存储每分钟降雨量的文件夹        
{  
calendar_get_time(&calendar);
calendar_get_date(&calendar); 
sprintf((char*)pname_sec,"0:监测第%02d天/第%02d天第%02d小时/第%02d天第%02d小时第%02d分钟/第%02d天第%02d小时第%02d分钟第%02d秒",calendar.w_date,calendar.w_date,calendar.hour,calendar.w_date,calendar.hour,calendar.min,calendar.w_date,calendar.hour,calendar.min,calendar.sec);

//////////////////////////////////////////////////////////////////
void notepad_new_pathname_sec_txt(u8 *pname_sec_txt)                      //建立一个存储每秒钟降雨量的文件夹 
{  
calendar_get_time(&calendar);
calendar_get_date(&calendar);
sprintf((char*)pname_sec_txt,"0:监测第%02d天/第%02d天第%02d小时/第%02d天第%02d小时第%02d分钟/第%02d天第%02d小时第%02d分钟第%02d秒/第%02d天第%02d小时第%02d分钟第%02d秒的降雨量.txt",calendar.w_date,calendar.w_date,calendar.hour,calendar.w_date,calendar.hour,calendar.min,calendar.w_date,calendar.hour,calendar.min,calendar.sec,calendar.w_date,calendar.hour,calendar.min,calendar.sec);


int main()
{
TCHAR pname_date[10];               //存储每天降雨量的文件夹
TCHAR pname_date_txt[30];           //存储每天降雨量的txt文件
TCHAR pname_hour[30];               //存储每小时降雨量的文件夹
TCHAR pname_hour_txt[50];           //存储每小时降雨量的txt文件
TCHAR pname_min[50];                //存储每分钟降雨量的文件夹
TCHAR pname_min_txt[90];            //存储每分钟降雨量的txt文件
TCHAR pname_sec[77];                //存储每秒钟降雨量的文件夹
TCHAR pname_sec_txt[117];            //存储每秒钟降雨量的txt文件 

f_mount(fs[0],"0:",1);
notepad_new_pathname_date(pname_date);            //建立文件夹
f_mkdir(pname_date);
// f_opendir(&dir,pname_date);

notepad_new_pathname_hour(pname_hour);
f_mkdir(pname_hour);
// f_opendir(&dir,pname_hour);
 
notepad_new_pathname_min(pname_min);
f_mkdir(pname_min);
// notepad_new_pathname_min_txt(pname_min_txt);
// f_opendir(&dir,pname_min);

notepad_new_pathname_sec(pname_sec);
f_mkdir(pname_sec);
notepad_new_pathname_sec_txt(pname_sec_txt);
f_opendir(&dir,pname_sec);
sprintf((char*)temp,"时间:20%02d-%02d-%02d %02d:%02d:%02d\r\n温度:%02d.%02dC\r\n当前每十秒的降雨量:%02d.%02d\r\n",year,month,date,hour,min,sec,temperature/10,temperature%10,inrainfall/10,inrainfall/10,inrainfall%10);
f_open(file,pname_min_txt,FA_CREATE_ALWAYS | FA_WRITE);

for(be=0;be<170;be++)
f_write(file,school,170,&be);
f_lseek(file,166);
for(be=0;be<70;be++)
f_write(file,temp,70,&be);
f_close(file);

}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

17

主题

342

帖子

0

精华

高级会员

Rank: 4

积分
544
金钱
544
注册时间
2014-4-24
在线时间
20 小时
发表于 2015-5-8 22:26:12 | 显示全部楼层
严重怀疑你这栈发生了溢出。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2015-5-8 22:43:01 | 显示全部楼层
把:
TCHAR pname_date[10];               //存储每天降雨量的文件夹
TCHAR pname_date_txt[30];           //存储每天降雨量的txt文件
TCHAR pname_hour[30];               //存储每小时降雨量的文件夹
TCHAR pname_hour_txt[50];           //存储每小时降雨量的txt文件
TCHAR pname_min[50];                //存储每分钟降雨量的文件夹
TCHAR pname_min_txt[90];            //存储每分钟降雨量的txt文件
TCHAR pname_sec[77];                //存储每秒钟降雨量的文件夹
TCHAR pname_sec_txt[117];            //存储每秒钟降雨量的txt文件 

这一堆东东,放全局变量。再试试
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

5

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2013-11-12
在线时间
0 小时
 楼主| 发表于 2015-5-9 14:35:11 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
我试过了,还是会死。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2015-5-9 22:50:14 | 显示全部楼层
回复【4楼】菜鸟级别:
---------------------------------
额,那就慢慢调。估计其他地方还有问题。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-24 15:07

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表