你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32+SDIO+FATFS实例

[复制链接]
yanghappy 发布时间:2011-3-11 22:25
阅读主题, 点击返回1楼
收藏 2 评论641 发布时间:2011-3-11 22:25
641个回答
at-358233 回答时间:2012-10-15 20:59:14

RE:STM32+SDIO+FATFS实例

也不知道能用否,下来看看!
xinjitmzy-34588 回答时间:2012-10-16 11:13:56

回复:STM32+SDIO+FATFS实例

又是回复可见,学习一下
cangbai 回答时间:2012-10-16 22:29:55

RE:STM32+SDIO+FATFS实例

谢谢分享,学习一下
danny-395440 回答时间:2012-10-17 21:13:14

RE:STM32+SDIO+FATFS实例

STM32+SDIO+FATFS实例
QQ897956996 回答时间:2012-10-19 11:12:47

回复:STM32+SDIO+FATFS实例

 大师,我移植了FATFS到flash,发现格式化未成功(未移植文件系统时多扇区(n*512B)读写没问题,已经测试过),如何配置格式化函数呀:
1 K3 C& G+ R8 `$ i1 `# [' v 
* [3 P( B$ q, y0 g' D( S! t#define _MAX_SS 512 /* 512, 1024, 2048 or 4096 */' v* C  p: Q9 ~. U$ E- O
/* Maximum sector size to be handled.  f5 O6 O2 Z+ @  g
/  Always set 512 for memory card and hard disk but a larger value may be
" A7 L8 n- u$ {! {; ^, r7 r/  required for floppy disk (512/1024) and optical disk (512/2048).6 d' s: I$ w% L
/  When _MAX_SS is larger than 512, GET_SECTOR_SIZE command must be implememted
; ~! \/ E! s+ k/  to the disk_ioctl function. */) |6 i# N$ m$ V
 - q# R* u9 _) [: i4 i' m1 u% ]
 4 j9 ?; D( J- F  t4 V( g
/*-----------------------------------------------------------------------*/' G6 f5 I. @. S! Q$ s; [
/* Miscellaneous Functions                                               */
# X! `* q* {- b! A 
2 G, p( ]0 u9 K- I5 U5 i& zDRESULT disk_ioctl( 
  S3 l# s3 k+ h0 g- w                      BYTE drv,             /* Physical drive nmuber (0..) */1 ~( r: N& m; o
                      BYTE ctrl,            /* Control code */
: f0 J/ Z' }4 _8 u9 @                      void *buff            /* Buffer to send/receive control data */. W2 Q4 ]; T. X
                  ); c& C: Q" r/ o+ Y4 v
{
0 ~) i1 W* f+ Y/ H( f* e" E    DRESULT res = RES_OK;
4 ?: P2 h- M& s3 c2 k4 K: O    //DWORD result;
9 D3 o2 I" r' V+ `& }1 W    if (drv)3 }  h! A5 |9 ^
    { 
, j, f9 e/ D: O5 j; c0 u1 n8 [1 ^3 v- h        return RES_ERROR;4 N3 N: X  f$ S% E
    }. z+ O4 Y) D! \' S5 E7 V
    ! C/ V: A* F/ S+ S# H* O, ?% H
    switch (ctrl)
6 U* m$ e. b# O    { 3 s; W) t8 C4 ]; x
        case CTRL_SYNC:: t' x2 \. Q3 i$ a) A' o) m
                           break;
* _# t1 ?8 E( J8 C  ]  K4 M        case GET_SECTOR_COUNT:
  o$ q( m6 R: X6 G/ t        ( y! W+ h( ?! n0 K; Z6 W
                           *(DWORD*)buff = (DWORD) 4096;  h, S3 }6 C, s' m# T2 H( e  q! B
                           break;                           //2M byte* N$ E5 b' D  I1 C' e: S: R
                           
. G7 D1 F5 t, b        case GET_SECTOR_SIZE:6 f9 b0 x% g  G0 [
                           
" |, _( Q3 E& y4 w6 R: |# u% G                           //*(DWORD*)buff = (DWORD) 2048;  //>512时从这里获得扇区大小  T8 ]: ^% c" C# I: d+ \5 M9 l2 h
                           break;  " ^/ b/ w1 t& @5 `" B9 S5 F
                                                           //单扇区字节数' n$ [- o0 A5 T6 J
        case GET_BLOCK_SIZE:
: G& Q5 c: Z* L! t                           1 M- h) M& m6 Z( K' u; H
                           *(DWORD*)buff = (DWORD) 4096;4 f7 Z, ]; \" s8 s
                           break;                          //族大小  . r" i0 d! N5 m: d  y5 m
                           
# O% R- E/ m- B1 V7 A  d$ E        case CTRL_POWER :
2 g+ r4 v4 V, }& b                  break;
" C  M, h% w2 |8 ^   case CTRL_LOCK :0 \0 s5 z( G: [
                  break;
/ x$ G: I* c+ `7 ]3 _) m   case CTRL_EJECT :8 P- E& c; H% d7 S5 P
                  break;
; O5 i: C! A4 r# E7 a        default:% H, I. {, h1 C* a' C( ^
                           res = RES_ERROR;
4 C, O6 |, `8 i- y                           break;        
6 o3 i1 [3 k# B5 A& ~    }! y: b1 ~- {& }0 E& N
    return res;
* d( B5 A3 }1 R/ V}& N  e$ G3 w; `' A: X7 X+ v& p
 
& |" G" j; P1 ]2 u0 t: t4 L / n5 n6 h/ \0 [% g' g3 @) S2 k0 Q# _
int main(void)
  B- U$ I0 |5 G- l% `{6 `/ J9 H/ S3 q1 B0 [, v. V
UARTInit ();                    /* UARTInit               */' X7 }  d! u) Q. H
        PINSEL0 = PINSEL0 & (~0x0F);    /* UART0,设置I/O连接到UART*/                         
- c/ J. {8 ]" G8 p        PINSEL0 = PINSEL0 | 0x05;       /* P0.0 = TXD0,P0.1 = RXD0*/   
# {7 |5 g" ?+ W* K    
; N0 L6 L9 g0 I& J2 }# j- ^UART0SendStr("\x0c\0");: F+ f6 N# t2 J. S; G7 L* h
UART0SendStr("\x0c\0");        //超级终端清屏
! B8 L4 _" q8 tUART0SendStr("\033[1;40;32m"); //设置超级终端背景为黑色,字符为绿色
% j) y& _$ C  I4 h7 G8 HUART0SendStr("\r\n*******************************************************************************");
: S* u; N! y1 `- ?! N" XUART0SendStr("\r\n*********************** Copyright 2012-10-10, liujiehan ***********************");
+ N% P6 y$ E& ?. C3 OUART0SendStr("\r\n************************** http://www.upcomputer.com **************************");1 F! |' e& T) m5 v1 {
UART0SendStr("\r\n***************************** All Rights Reserved *****************************");3 e4 P2 b" j9 W0 _- d6 W- U
UART0SendStr("\r\n*******************************************************************************");
$ ~; t$ r$ o/ ~7 W2 x4 oUART0SendStr("\r\n");( O, a5 S" m+ m( v
 ) u5 ], b  [" h, Y
/*初始化文件系统,检查芯片是否插入以及是否型号正确*/
0 Y- P, l5 |# F( nres = disk_initialize(NORFLASH);; S) H& ]& M% F
if(res == RES_OK)- P* D* `9 M) n) ~$ _
{
: M6 C3 {' E+ i0 D  Y' Q  b8 N0 w   UART0SendStr("initialize filesystem successed!\n\r\n\r");
8 D, N0 b- G% \, W}: \& t& o! R% U0 g) \1 C9 Q
else1 p4 e9 {: l( Y2 j/ x2 Q# ]% i* j9 g
{# O! X9 c) H: B& {
   UART0SendStr("initialize filesystem failed!\n\r\n\r");  2 h, N$ X" B9 _% y  g
}! E  @& [' y$ D! x. e: y- G8 _
/*挂载文件系统*/  e; p# I+ I' L  X/ l, d
res = f_mount(NORFLASH,&fs);8 C& B# y: Q! r+ |* q! w: ]7 N
if(res == RES_OK)
/ n9 v- t7 z9 y1 y2 [{
! w/ N) ?) x3 J* j7 @   UART0SendStr("mount filesystem successed!\n\r\n\r");: V& X+ K6 u9 ^+ H& o. y& Q
}/ {6 ]7 ^9 J3 h* R; g7 U* w
else1 }; O+ p. ?0 B* t% v
{
* H+ `0 r( B; Q' d7 B: N   UART0SendStr("mount filesystem failed!\n\r\n\r");  4 _- [- z( M: ~0 {' i) f
}# Q( ?/ e3 L* ^* r7 T; Z1 k
/*格式化磁盘*/: \2 [% f3 d! N/ M% h& f
UART0SendStr("正在格式化磁盘,请稍候...\n\r\n\r");
) g. o: N+ @& F1 N1 e" P//res = f_mkfs(NORFLASH,1,4096);//4096:每簇占用字节数. W- ~/ N" B7 w( p2 _$ [* D
res = f_mkfs(NORFLASH,0,4096);//4096:每簇占用字节数
/ R0 _& k$ j4 Y6 e0 ]if(res == RES_OK)
; Z3 B4 g, s9 C- u. ]{6 W- {* V2 E3 Y/ a! R) a/ J
UART0SendStr("format filesystem successed!\n\r");* a3 ]$ x* J) ^: X
 
9 J3 y# J! I+ ]$ \8 I}
% V3 [' w- R) h; I% F5 V/ Gelse4 C, M* R, W6 B+ g2 U( ^" U
{
  a7 q7 E) g- w! E   UART0SendStr("format filesystem failed!\n\r");
1 g. z; x4 [7 F- o}
& v7 U0 C. C0 Eres = f_mount(NORFLASH,NULL);
* v8 Y/ A+ i; L7 i4 ?/////////////////////////////////////////////////////////////////////////////////////////////////
/ F- r% `( g" {& Y, p4 ires = f_mount(NORFLASH,&fs);% D1 I! E2 O. N
 5 b7 P; M1 U3 d0 r' V
/*写文件测试*/( F% Z5 t/ B8 ]0 q
UART0SendStr("write file test......\n\r");1 p0 i5 V! O8 e/ [
    res = f_open(&FileObject, "test.txt", FA_CREATE_ALWAYS | FA_WRITE);! r7 t! W- X. j& [& S5 I
    。。。$ F6 p+ d2 ?5 e* C; W/ E
}
, Z, F9 Q5 D) y1 P; b6 I0 ` 
xyz_gg 回答时间:2012-10-23 16:52:23

回复:STM32+SDIO+FATFS实例

( H! w5 W3 b/ p! X+ o
顶起!
xieyungui 回答时间:2012-10-31 12:40:28

回复:STM32+SDIO+FATFS实例

yyyy
lty822877 回答时间:2012-11-4 20:18:56

回复:STM32+SDIO+FATFS实例

谢谢楼主了!!!!!!!!!!!!!!!!!
gzhsauto 回答时间:2012-11-11 02:14:43

RE

学习一下:STM32+SDIO+FATFS实例
llhai 回答时间:2012-11-11 23:04:44

回复:STM32+SDIO+FATFS实例

及时雨啊,正需要这个
JakeWOO 回答时间:2012-11-13 15:01:09

回复:STM32+SDIO+FATFS实例

 快看看~~~
xiecailang 回答时间:2012-11-16 13:25:40

回复:STM32+SDIO+FATFS实例

项目刚好需要,学习中
sufengtyut 回答时间:2012-11-28 19:27:21

回复:STM32+SDIO+FATFS实例

 学习,遇到问题了
dare-399038 回答时间:2012-11-29 12:31:24

RE:STM32+SDIO+FATFS实例

wokankan
gpsyu 回答时间:2012-11-30 14:01:30

RE:STM32+SDIO+FATFS实例

好东西,正需要啊

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版