sd卡建立txt文件

2019-08-13 22:19发布

大家好!,小屁孩求教。。我想在战舰开发板综合实验基础上添加一个功能,就是在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文件,,这个有什么缺的东西吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
巴哈德
1楼-- · 2019-08-13 23:30
好久没时间玩stm32,前天终于弄出来了。。。可能有错,但建新文件成功,想写什么就能写什么了,。。。来分享一下
在战舰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的小鸟。。。
正点原子
2楼-- · 2019-08-14 02:20
*sname=*pname;
改为:
sname=pname
另外,pname,你申请了内存吧?
巴哈德
3楼-- · 2019-08-14 06:42
回复【2楼】正点原子:
---------------------------------
 申请了
正点原子
4楼-- · 2019-08-14 07:23
回复【3楼】巴哈德:
---------------------------------
那你单步跟踪下吧,看看每个步骤返回结果是什么,根据返回结果判断错误类型。
巴哈德
5楼-- · 2019-08-14 07:30
 精彩回答 2  元偷偷看……
fanghuiopenedv
6楼-- · 2019-08-14 12:42
mark 顶起来先!

一周热门 更多>