OpenEdv-开源电子网

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

miniSTM32 移植FATFS 学习过程持续更新......

[复制链接]

14

主题

101

帖子

2

精华

中级会员

Rank: 3Rank: 3

积分
493
金钱
493
注册时间
2011-9-6
在线时间
3 小时
发表于 2011-9-22 13:54:58 | 显示全部楼层 |阅读模式
各位朋友:
      发这个帖子的时候刚开始学习FATFS,很多地方不懂,结果无人回答,我决定将自己学习的过程中遇到的问题记录下来,希望对遇到问题的朋友能够有点帮助!
     1 我根据张洋大哥提供的FATFS R0.08的样例工程文件实现了最基本的文件创建,读文件夹中的文件.(SD卡驱动是根据原子哥的驱动程序,未做任何修改)
        http://www.openedv.com/posts/list/383.htm#1488 不过要将LCD初始化程序的背光打开,将0改为1.      http://www.ourdev.cn/bbs/bbs_content.jspbbs_sn=4810784&bbs_page_no=1&search_mode=3&search_text=zhaofeng2008&bbs_id=9999 这个资料也可以参考一下
    2  学习一下FATFS的源码分析(源码用sourcr insight读很方便),了解基本结构http://www.61ic.com/Article/TIARM/Stellaris/201109/37570.html(可以作为参考)
    3 学习了如何全部显示文件列表   FRESULT scan_files (char* path);
    4 如何读写数据

     以上基本就是现在为止学习的内容,后续会继续完善.源码将会陆续上传,现将已经实现的功能主程序上传.




程序基本功能描述:   开发板:原子哥MINI STM32开发板
                            KEY0    根据RTC提供的日期 时间创建文件夹及文件,若无当天的文件夹则创建文件夹,若有当天的文件夹则根据时间 
                                         创建文件
                            KEY1    向当天文件夹下最后创建的那个文件写数据
                            WAKE_UP    读当天文件夹下最后创建的那个文件的数据,并通过串口调试助手显示

#include <stm32f10x_lib.h>
#include "sys.h"  
#include "delay.h"
#include "usart.h"
#include "mmc_sd.h"
#include "ff.h"
#include "integer.h"
#include "diskio.h"
#include "lcd.h"
#include "rtc.h"
#include "key.h"
#include "string.h"

u16 i;
FATFS fs;
FRESULT res;
FILINFO fileInfo;
UINT br,bw;
UINT r=1;
DIR dir;
FIL fsrc;
char buffer[512];
char trs[7]={"hello!"};
char dir_path[25]={" "};
char file_path[25]={" "};
char file_path1[25]={" "};

void convert (char *a,u32 n);
FRESULT scan_files (char* path);
void Write_file(char *dir_path,char *file_path);
void Read_file(char *dir_path,char *file_path);
u8 Create_files (char *dir_path,char *file_path);
int main(void){
 u8 t;
    Stm32_Clock_Init(9);//系统时钟设置
 delay_init(72);  //延时初始化
  LCD_Init();
 RTC_Init();
 KEY_Init();
 uart_init(72,9600);

 OINT_COLOR=RED;
 LCD_ShowString(17,30,"MINISTM32 FATFS Test!");                      
 while(1){
  t=KEY_Scan();
  res = f_mount(0, &fs);
  if(t){              
   switch(t){                                  
    case 1: Create_files(dir_path,file_path);
      scan_files(dir_path);
      break;
    case 2: Write_file(dir_path,file_path);
      break;
    case 3: Read_file(dir_path,file_path);
      break;
   } 
  }
  f_mount(0,NULL);                                                        
 }
}

//数字转化为字符串
void convert (char *a,u32 n)
{
 int count=1;
 int i,j;
 int temp=n;
 while((temp=temp/10) !=0)
 {
  count++;
 }
 for(i=count;i>=1;i--)
 {
  temp=n;
     for(j=1;j<i;j++)
  {
   temp=temp/10;   
  }
  *a=temp%10+'0';
        a++;
 }
}

//扫描文件夹下所有文件并显示
FRESULT scan_files (char* path)
{
    FRESULT res;
    FILINFO fno;
    DIR dir;
    int i,j,k;
    char *fn;

 #if _USE_LFN
    static char lfn[_MAX_LFN * (_DF1S ? 2 : 1) + 1];
    fno.lfname = lfn;
    fno.lfsize = sizeof(lfn);
 #endif
 
    res = f_opendir(&dir, path);
    if (res == FR_OK) {
        i = strlen(path);
        for (;;) {
            res = f_readdir(&dir, &fno);
            if (res != FR_OK || fno.fname[0] == 0) break;
            if (fno.fname[0] == '.') continue;

   #if _USE_LFN
            fn = *fno.lfname ? fno.lfname : fno.fname;
   #else
            fn = fno.fname;
   #endif

            if (fno.fattrib & AM_DIR) {
                LCD_ShowString(17,90,(u8 *)path);
                res = scan_files(path);
                if (res != FR_OK) break;
                path = 0;
            } else {
    LCD_ShowString(17,90,(u8 *)path);
    LCD_ShowString(17+j*100,110+k*20,(u8 *)fn);
    j++;
    if(j==2){
      k++;
     j=0;
    } 
            }
        }
    }
    return res;
}

//创建文件夹路径和文件路径
u8 Create_files(char *dir_path,char *file_path)
{
 u32 Date,Time;
 char string0[25]={"0:/"}; //根目录
 char string1[15]={" "};     //日期目录
 char string2[3]={"/"};
 char string3[15]={" "}; //时间
 char string4[5]={".txt"};

 Date=timer.w_year*10000+timer.w_month*100+timer.w_date;  //获取日期
 convert(string1,Date);          //日期转换为字符串
 Time=timer.hour*10000+timer.min*100+timer.sec;       //获取时间
 convert(string3,Time);          //时间转换为字符串
 
 strcat(string0,string1);         //合成文件夹路径
 strcpy(dir_path,string0);

 strcat(string0,string2);                //合成文件路径
 strcat(string3,string4);
 strcat(string0,string3);
 strcpy(file_path,string0);
        
 res = f_mkdir((TCHAR *)dir_path);           //创建目录
 LCD_ShowString(17,50,"Create new dir !");
 if(res==FR_EXIST){                  //如果目录存在,根据时间创建文件
  res = f_open(&fsrc,(TCHAR *)file_path, FA_OPEN_ALWAYS);  //文件不存在则创建新文件
  LCD_ShowString(17,50,"Create new file !");
  f_close(&fsrc);               //关闭文件         
 }
 return 0; 
}

//向文件内写数据
void Write_file(char *dir_path,char *file_path)
{
 res=f_opendir(&dir,(TCHAR*)dir_path);
 res = f_open(&fsrc,(TCHAR *)file_path, FA_OPEN_ALWAYS | FA_WRITE);
 f_lseek(&fsrc,fsrc.fsize);                    //移动指针
 f_write(&fsrc,&trs,sizeof(trs),&bw);            //写数据
 LCD_ShowString(17,70,"Write data over!");
 f_close(&fsrc);
}

//读文件内数据
void Read_file(char *dir_path,char *file_path)
{
 int i;
 res=f_opendir(&dir,(TCHAR*)dir_path);
 res = f_open(&fsrc,(TCHAR *)file_path, FA_OPEN_EXISTING | FA_READ);
 printf("\nReceive data: \n");
 for (;;) {
        res = f_read(&fsrc, buffer, sizeof(buffer), &br);
        if (res || br == 0) break;   // error or eof
        for( i = 0; i < br; ++i )
            printf("%c",buffer);
  printf("\n"); 
    }
 LCD_ShowString(17,70,"Read  data over!");
 f_close(&fsrc);
}

事无巨细 循序渐进
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2011-9-30 17:48:28 | 显示全部楼层
回复【4楼】葱花鱼:
---------------------------------
所以说觉知此事要躬行.
现在这样的人越来越少了.

你把代码发上来分享给需要的朋友吧.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 1 反对 0

使用道具 举报

14

主题

101

帖子

2

精华

中级会员

Rank: 3Rank: 3

积分
493
金钱
493
注册时间
2011-9-6
在线时间
3 小时
 楼主| 发表于 2011-9-22 14:09:37 | 显示全部楼层
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4810784&bbs_page_no=1&search_mode=3&search_text=zhaofeng2008&bbs_id=9999

刚找到资料,开始参照学习,希望已经移植成功的可以分享经验,多谢!
事无巨细 循序渐进
回复 支持 反对

使用道具 举报

14

主题

101

帖子

2

精华

中级会员

Rank: 3Rank: 3

积分
493
金钱
493
注册时间
2011-9-6
在线时间
3 小时
 楼主| 发表于 2011-9-28 10:48:09 | 显示全部楼层
目前已经可以实现文件创建 读写, 文件夹创建也可实现,但是根据RTC提供日期创建文件遇到数据类型转换问题,有知道的朋友可以多多指点. 功能实现后将和大家一起分享,具体问题详见http://www.openedv.com/posts/list/1613.htm
希望大家多提意见,谢谢!
事无巨细 循序渐进
回复 支持 反对

使用道具 举报

14

主题

101

帖子

2

精华

中级会员

Rank: 3Rank: 3

积分
493
金钱
493
注册时间
2011-9-6
在线时间
3 小时
 楼主| 发表于 2011-9-30 14:28:57 | 显示全部楼层
根据RTC时间创建目录及文件,我是将日期 时间组合成,然后转化为字符串.
在向文件夹内的文件读写数据时,打开文件夹后打开需要读写的文件,此时注意打开文件的路径需要完整,如:  0:/20110929/130715    否则会出现不能读写的问题.  花了好长时间才搞定,一点体会,呵呵!
事无巨细 循序渐进
回复 支持 反对

使用道具 举报

14

主题

101

帖子

2

精华

中级会员

Rank: 3Rank: 3

积分
493
金钱
493
注册时间
2011-9-6
在线时间
3 小时
 楼主| 发表于 2011-10-4 16:39:19 | 显示全部楼层
十一回去之后上传完整工程文件.......
事无巨细 循序渐进
回复 支持 反对

使用道具 举报

14

主题

101

帖子

2

精华

中级会员

Rank: 3Rank: 3

积分
493
金钱
493
注册时间
2011-9-6
在线时间
3 小时
 楼主| 发表于 2011-10-8 09:13:46 | 显示全部楼层
 工程文件已上传,希望对有需要的朋友有所帮助!

SD_FATFS_R0.08a.rar

1.75 MB, 下载次数: 9378

事无巨细 循序渐进
回复 支持 反对

使用道具 举报

14

主题

101

帖子

2

精华

中级会员

Rank: 3Rank: 3

积分
493
金钱
493
注册时间
2011-9-6
在线时间
3 小时
 楼主| 发表于 2011-10-8 14:52:04 | 显示全部楼层
 利用DMA方式从串口接收数据,然后将数据写入文件,再读出文件在串口调试助手显示.
 程序基本功能描述:   开发板:原子哥MINI STM32开发板
                            KEY0          根据RTC提供的日期 时间创建文件夹及文件,若无当天的文件夹则创建文件夹,若有当天的文件夹则根据
                                              时间创建文件
                            KEY1           UASRT以DMA方式接收串口调试助手发送的数据,然后向当天文件夹下最后创建的那个文件写数据
                            WAKE_UP    读当天文件夹下最后创建的那个文件的数据,并通过串口调试助手显示

在串口调试助手中输入:http://st.eefocus.com/activity/stm_2011/stm32_2011.html (输入网址)



工程文件见附件!

FATFS_SD_DMA_USART.rar

1.84 MB, 下载次数: 8520

事无巨细 循序渐进
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2011-10-8 15:22:28 | 显示全部楼层
非常好.谢谢共享.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

64

主题

227

帖子

0

精华

高级会员

Rank: 4

积分
541
金钱
541
注册时间
2011-7-23
在线时间
13 小时
发表于 2011-10-12 14:05:52 | 显示全部楼层
USART的DMA模式还没学习过,只知道配置一下串口,然后收发数据。我也成功移植了个znFAT。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2011-10-12 14:17:02 | 显示全部楼层
楼上也可以发个帖子,和大家分享一下嘛.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

14

主题

101

帖子

2

精华

中级会员

Rank: 3Rank: 3

积分
493
金钱
493
注册时间
2011-9-6
在线时间
3 小时
 楼主| 发表于 2011-10-12 22:08:14 | 显示全部楼层
欢迎大家将学习SD卡 文件系统的经验在这里分享,大家互相学习,共同进步! 最近在进行LCD动态显示串口发送的数据,同时将数据存在SD卡中,等功能实现后工程文件将会上传,祈祷可以快点实现!
事无巨细 循序渐进
回复 支持 反对

使用道具 举报

16

主题

83

帖子

0

精华

初级会员

Rank: 2

积分
196
金钱
196
注册时间
2011-8-12
在线时间
6 小时
发表于 2011-10-13 13:52:26 | 显示全部楼层
LZ我顶你个肺啊,太支持你了,持续关注,日后我也要用这个,学习了!
回复 支持 反对

使用道具 举报

头像被屏蔽

95

主题

159

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
442
金钱
442
注册时间
2011-3-22
在线时间
6 小时
发表于 2011-10-13 15:32:05 | 显示全部楼层

 //打开data.txt文件 如果要打开的文件不存在,则返回失败    
     //res = f_open(&file,"data.txt",FA_OPEN_EXISTING | FA_READ);     // 空白文件对象结构指针,文件名指针,模式标志 (打开可以)
 //  res = f_open(&file,"mcu.doc",FA_CREATE_ALWAYS  | FA_WRITE); // 空白文件对象结构指针,文件名指针,模式标志 (建立可以)
 //  res = f_open(&file,"asi",FA_CREATE_NEW  | FA_WRITE);      //为什么新建一个文件会出现文件已经存在呢?
 res = f_mkdir("123");           //建立第一个文件夹123
    res = f_mkdir("123/sub2");      //在123下建立一个文件夹sub2
    res = f_mkdir("123/sub2/sub3"); //在123下,sub2里建立一个sub3

 res=f_open(&file, "0:/123/sub2/sub3/read.txt", FA_CREATE_ALWAYS  | FA_WRITE); //在0工作区123中的sub2里的sub3文件夹中建立read.txt
 

回复 支持 反对

使用道具 举报

14

主题

101

帖子

2

精华

中级会员

Rank: 3Rank: 3

积分
493
金钱
493
注册时间
2011-9-6
在线时间
3 小时
 楼主| 发表于 2011-10-13 16:30:02 | 显示全部楼层
谢谢分享!
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2011-10-11
在线时间
2 小时
发表于 2011-10-14 16:40:52 | 显示全部楼层
这必须要顶的!!
世事即一个圆,在其上,无所谓开始亦无所谓结束。
回复 支持 反对

使用道具 举报

头像被屏蔽

95

主题

159

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
442
金钱
442
注册时间
2011-3-22
在线时间
6 小时
发表于 2011-10-15 21:22:15 | 显示全部楼层
想问下葱花鱼,我想问下你,就是我想读取比如PIC文件夹下的所有.jpg文件,我该如何做呢?因为想做一个FATFS文件的数码相框,现在只会显示一个照片,也就是提前知道路径,而且知道文件名!!也希望原子老大给个例程参考下,给小弟点思路!!
回复 支持 反对

使用道具 举报

14

主题

101

帖子

2

精华

中级会员

Rank: 3Rank: 3

积分
493
金钱
493
注册时间
2011-9-6
在线时间
3 小时
 楼主| 发表于 2011-10-15 22:19:45 | 显示全部楼层
在miniSTM32读取文件夹下JPG图片并显示我没实现过,但是根据读取文件的经验,你可以将文件夹下图片的名称读出后存储起来,每次读取图片前,先合成访问JPG文件的路径再调用图片显示程序。一点愚见,希望可以给你点思路,说的不对的地方,请多包含。
事无巨细 循序渐进
回复 支持 反对

使用道具 举报

14

主题

101

帖子

2

精华

中级会员

Rank: 3Rank: 3

积分
493
金钱
493
注册时间
2011-9-6
在线时间
3 小时
 楼主| 发表于 2011-10-18 14:42:45 | 显示全部楼层
LCD动态显示曲线遇到问题,每一屏50个数据,更新数据后需要清除后再显示曲线,现在明显感到是清屏影响了速度,大家有无好的办法,敬请赐教!
事无巨细 循序渐进
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2011-10-18 15:06:30 | 显示全部楼层
回复【19楼】葱花鱼:
---------------------------------
1,采用内建显存,这样可以免去清屏.
2,采用区域刷新.也就是部分清屏,而不是整个清屏.而且尽量采用地址自增方式刷屏,这样速度快很多.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

14

主题

101

帖子

2

精华

中级会员

Rank: 3Rank: 3

积分
493
金钱
493
注册时间
2011-9-6
在线时间
3 小时
 楼主| 发表于 2011-10-18 15:39:30 | 显示全部楼层
关于区域刷屏,我使用液晶程序中的函数LCD_Fill(....)实现显示区域清屏,利用乒乓策略,循环队列存储处理后的数据,显示曲线会一闪一闪 不连续,屏蔽清屏函数后可以发现曲线向前移动.关于内建显存,慢慢看看怎么做.  
谢谢原子哥!
事无巨细 循序渐进
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2011-10-18 23:57:43 | 显示全部楼层
回复【21楼】葱花鱼:
---------------------------------
那没办法了。
你显示曲线的时候,不用全屏画 了了。
应该不会这么慢吧?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

14

主题

101

帖子

2

精华

中级会员

Rank: 3Rank: 3

积分
493
金钱
493
注册时间
2011-9-6
在线时间
3 小时
 楼主| 发表于 2011-10-19 09:59:41 | 显示全部楼层
        绘制动态曲线图出现一闪一闪的情况,工程文件在附件中,请大家帮帮忙,谢谢!

LCD_UART.rar

725.16 KB, 下载次数: 4463

事无巨细 循序渐进
回复 支持 反对

使用道具 举报

14

主题

101

帖子

2

精华

中级会员

Rank: 3Rank: 3

积分
493
金钱
493
注册时间
2011-9-6
在线时间
3 小时
 楼主| 发表于 2011-10-20 16:58:52 | 显示全部楼层
回复【23楼】葱花鱼:
---------------------------------
问题已解决,可以绘制动态曲线,实时性得到加强,还需优化!
事无巨细 循序渐进
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2011-10-20 20:04:14 | 显示全部楼层
回复【24楼】葱花鱼:
---------------------------------
恭喜....
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

4

主题

13

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2011-10-21
在线时间
0 小时
发表于 2011-10-24 02:05:31 | 显示全部楼层
楼主的学习笔记,好呀
回复 支持 反对

使用道具 举报

14

主题

101

帖子

2

精华

中级会员

Rank: 3Rank: 3

积分
493
金钱
493
注册时间
2011-9-6
在线时间
3 小时
 楼主| 发表于 2011-10-25 16:42:49 | 显示全部楼层

  这个工程主要实现动态绘制曲线和在SD卡内创建、读写文件。
 key0     按键控制根据RTC日期创建文件夹,根据RTC时间创建文件 ;
 key1      DMA中断方式持续接收串口数据 ,然后将接收到的数据写入文件 ,LCD显示曲线;
wake_up   读文件内数据, LCD显示曲线。

DMA中断方式接收数据是根据原子哥提出的利用乒乓策略实现数据持续接收,参考了http://hi.baidu.com/%B0%D9%BA%CF%CA%A6/blog/item/1a516c3c77aab229b9998f61.html (利用库函数实现)里面关于乒乓策略的处理方法,在此表示感谢。

注:工程文件中关于数据处理采用数组搬移的方式实现,还存在数据处理速度慢的缺陷,数据处理以链队的方式(实现上述功能)还未实现,如果大家有好的处理方法欢迎指点迷津,如有不足之处欢迎指正,共同进步,谢谢!

串口测试字符串(字符长度为100)0103060709141618253555607065545045403726343129282624211918151412100704020809344547495658666854434547

FATFS 动态曲线.rar

1.84 MB, 下载次数: 7264

事无巨细 循序渐进
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2011-10-25 17:17:45 | 显示全部楼层
回复【27楼】葱花鱼:
---------------------------------
恭喜.
只要认真去做,没有做不成的.继续努力.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

14

主题

101

帖子

2

精华

中级会员

Rank: 3Rank: 3

积分
493
金钱
493
注册时间
2011-9-6
在线时间
3 小时
 楼主| 发表于 2011-10-25 17:58:53 | 显示全部楼层
回复【23楼】葱花鱼:
---------------------------------
问题已经解决,主要是LCD屏绘制曲线,for循环中关于i值的条件错误. 核心是对于循环队列的基本知识掌握不足.

程序修改如下:
void Display(SqQueue *Q){
int i,j=0,m;
if(Q->front==Q->rear){
LCD_ShowString(70,25,"Queue is void!");
}
i=Q->front;
m=Q->rear;
for(;i!=m;){  
LCD_DrawLine(50+j*5,200-Q->base,50+(j+1)*5, 200-Q->base[(i+1)%MAXSIZE]);
i=(i+1)%MAXSIZE;
j++;
}
}
事无巨细 循序渐进
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2011-10-25 21:39:10 | 显示全部楼层
此贴是个很好的例子.精华!
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

7

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2011-7-15
在线时间
0 小时
发表于 2011-10-30 16:58:02 | 显示全部楼层
根本下载不了啊!网速不给力的,是资源问题吗?我换了好多地方!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2011-10-30 17:44:39 | 显示全部楼层
用右键另存为就可以了吧?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

7

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2011-7-15
在线时间
0 小时
发表于 2011-10-30 19:09:31 | 显示全部楼层
下载不了,给个邮箱 先谢谢了;yangyuqi888@163.com,麻烦楼主或版主给偶们发份,学习学习!
回复 支持 反对

使用道具 举报

14

主题

101

帖子

2

精华

中级会员

Rank: 3Rank: 3

积分
493
金钱
493
注册时间
2011-9-6
在线时间
3 小时
 楼主| 发表于 2011-10-30 21:12:45 | 显示全部楼层
回复【33楼】yangyuqi1986:
---------------------------------
邮件已发送,请注意查收!欢迎留下足迹......
事无巨细 循序渐进
回复 支持 反对

使用道具 举报

48

主题

376

帖子

0

精华

高级会员

Rank: 4

积分
621
金钱
621
注册时间
2011-3-18
在线时间
7 小时
发表于 2011-12-19 11:13:22 | 显示全部楼层
找到了好東西,多謝葱花鱼 

回复 支持 反对

使用道具 举报

46

主题

1579

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1970
金钱
1970
注册时间
2011-7-17
在线时间
4 小时
发表于 2011-12-22 09:32:32 | 显示全部楼层
刚发现,写文件函数,写完之后要关闭文件才能保存。
Time?And?Relative?Dimension?In?Space.
回复 支持 反对

使用道具 举报

13

主题

104

帖子

0

精华

初级会员

Rank: 2

积分
179
金钱
179
注册时间
2011-8-2
在线时间
0 小时
发表于 2011-12-24 09:39:56 | 显示全部楼层
好啊,fatfs ,正要用这个
回复 支持 反对

使用道具 举报

3

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2011-1-4
在线时间
4 小时
发表于 2011-12-31 10:34:52 | 显示全部楼层
fatfs ,先收藏下
回复 支持 反对

使用道具 举报

46

主题

1579

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1970
金钱
1970
注册时间
2011-7-17
在线时间
4 小时
发表于 2012-1-4 12:49:43 | 显示全部楼层
FATFS上的格式化函数应该怎么用?我2G的卡用这函数一格式化,在电脑上成了200K了。
Time?And?Relative?Dimension?In?Space.
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2012-2-21
在线时间
0 小时
发表于 2012-2-28 10:52:35 | 显示全部楼层
你好,lz,我得stm32下载了你的SD_FATFS_R0.08a.rar,板子屏幕白色,不显示东西,能创建文件夹和文件,就是不能写入数据,请求指教啊
回复 支持 反对

使用道具 举报

1

主题

10

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2011-10-24
在线时间
0 小时
发表于 2012-3-3 10:49:19 | 显示全部楼层
感谢楼主!!感谢大家!!!!感动中。。。。
love it, do it!
回复 支持 反对

使用道具 举报

46

主题

1579

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1970
金钱
1970
注册时间
2011-7-17
在线时间
4 小时
发表于 2012-3-3 16:16:59 | 显示全部楼层
楼主,提供一个f_rename函数的使用例子如何?
Time?And?Relative?Dimension?In?Space.
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2012-3-9
在线时间
0 小时
发表于 2012-3-9 16:21:57 | 显示全部楼层
葱花鱼大哥,帮了我的大忙啊,十分感谢!!!
回复 支持 反对

使用道具 举报

12

主题

216

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
313
金钱
313
注册时间
2011-4-7
在线时间
3 小时
发表于 2012-3-10 14:30:50 | 显示全部楼层
学习mark
回复 支持 反对

使用道具 举报

2

主题

3

帖子

0

精华

新手入门

积分
31
金钱
31
注册时间
2012-4-15
在线时间
0 小时
发表于 2012-4-15 21:40:12 | 显示全部楼层
have a mark
回复 支持 反对

使用道具 举报

2

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2011-10-8
在线时间
0 小时
发表于 2012-5-2 22:18:28 | 显示全部楼层
我把楼主上传的例程下载到板上,怎么液晶上什么都没有显示,是一个白屏啊?
回复 支持 反对

使用道具 举报

98

主题

408

帖子

3

精华

金牌会员

Rank: 6Rank: 6

积分
1280
金钱
1280
注册时间
2010-12-14
在线时间
0 小时
发表于 2012-5-2 22:46:19 | 显示全部楼层
回复【46楼】kellence:
我把楼主上传的例程下载到板上,怎么液晶上什么都没有显示,是一个白屏啊?
---------------------------------
可能你的代码是旧的,你可以更新lcd驱动
http://openedv.com/posts/list/3292.htm
希望openedv能给大家提供一个友好的技术交流平台!
回复 支持 反对

使用道具 举报

16

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
162
金钱
162
注册时间
2012-3-20
在线时间
9 小时
发表于 2012-5-4 21:12:43 | 显示全部楼层
mark
回复 支持 反对

使用道具 举报

6

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
96
金钱
96
注册时间
2012-1-13
在线时间
0 小时
发表于 2012-5-8 12:22:21 | 显示全部楼层
非常感谢lz!!!!正要学习.............
回复 支持 反对

使用道具 举报

16

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
162
金钱
162
注册时间
2012-3-20
在线时间
9 小时
发表于 2012-5-17 17:12:28 | 显示全部楼层
mark
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-19 03:35

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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