大家好!,小屁孩求教。。我想在战舰开发板综合实验基础上添加一个功能,就是在sd卡里面建文本文件,然后写数据保存,,,我参考那个关于“记事本”的程序代码自己写来写去都不能建文件,
recode_new_pathname(pname);//取时间命名文件。
*sname=*pname;
res=f_open(f_txt,(const TCHAR*)sname,FA_READ|FA_WRITE|FA_CREATE_NEW);//创建新文件
f_lseek(f_txt,0);文件指针指向文件头
if(res=0)f_write(f_txt,btbuf,strlen(btbuf),&a);////写入数据
f_close(f_txt);//关闭文件
大概就是这个代码,建不了txt文件,,这个有什么缺的东西吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
在战舰STM32开发板第40例程下改改代码就行了,别的地方不用看了。。。
int main(void)
{
char *b="ffssfssffdw";//随便定义了一下
char *btbuf="dkfjhsdfkdshfdsk";////随便定义了一下
delay_init(); //延时函数初始化
NVIC_Configuration(); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
uart_init(9600); //串口初始化为9600
LED_Init(); //LED端口初始化
LCD_Init(); //初始化液晶
KEY_Init(); //初始化按键
exfuns_init(); //为fatfs相关变量申请内存
usmart_dev.init(72);
mem_init(SRAMIN); //初始化内部内存池
SD_Initialize();
f_mount(0,*fs);//注册工作区域
res=f_mkdir("0ATA");//在SD卡里面新建文件夹
res=f_open(&f_txt,(const TCHAR*)b,FA_OPEN_ALWAYS | FA_WRITE);//新建文件,其中b是一个字符数组,先强制转换constant char类型,再用来做文件名,用FA_ALWAYS_CREATE就建不了新文件,不知道为什么。
f_lseek(&f_txt,0);
f_write(&f_txt,btbuf,strlen(btbuf),(UINT*)&br);写入数据
f_close(&f_txt);
}
整个程序就不贴过来了,改了这个以后能创建文件了,创建以后可以把btbuf里的内容写到里面并保存了。
其实这个FATFS文件系统里面的微不足道的知识,没什么难度,不过希望能帮助像我一样刚开始学FATFS的小鸟。。。
改为:
sname=pname
另外,pname,你申请了内存吧?
---------------------------------
申请了
---------------------------------
那你单步跟踪下吧,看看每个步骤返回结果是什么,根据返回结果判断错误类型。
一周热门 更多>