-
就一天,第二天测试
-
恩,目前曾写入成功,不过不太稳定,正在调试中。
-
恩,我熬了一个通宵,还是没出来,现在是f-open是老师返回不了正确的值,不知是不是因为5528的芯片不稳定问题。5528是128K ram 应该没问题吧。。。。我这用的0.4版本的FATFS,没找着FFCONF.H。。。。。
-
无读写系统的
-
你好,我还有些问题想深入跟你聊聊,这是我的QQ240230917,希望您能够帮我一下!
-
我这运行到f_mount说我的堆栈指针在堆栈范围外。。。。。不知怎么回事?
[ 本帖最后由 shenmiao0330 于 2012-3-21 21:46 编辑 ]
-
另外有个问题想请教,主函数里从f_mount,f_open,f_read或者f_write一直没有涉及到disk_initialize这个函数,那么这个初始化函数用在哪了??
看到大部分人的做FATFS移植的,主函数都这么写,没有初始化函数,可又都是成功案例,这真是搞不懂。。。。
-
是到那有warning ,然后就执行不下去了,说我的堆栈指针指向的内容超出了堆栈的范围。。。。
[ 本帖最后由 shenmiao0330 于 2012-3-21 17:07 编辑 ]
-
执行到F_MOUNT这步,就warning,说我的STACK超字节了。。。。是不是这IAR 哪有堆栈字节的上限??我查过我的debug,最多个一个是1538字节。
-
目前一直在f_mount上过不去了
main代码如下:
void main()
{
WDTCTL = WDTPW + WDTHOLD; //关闭看门狗
P2OUT |= BIT2 + BIT3 + BIT4 + BIT5;
P2DIR |= BIT2 + BIT3 + BIT4 + BIT5; //LED
P1DIR &= ~( BIT4 + BIT5 + BIT6 + BIT7 ); //按键
P1IES |= BIT4 + BIT5 + BIT6 + BIT7;
P1IE |= BIT4 + BIT5 + BIT6 + BIT7;
P2IFG =0;
SpiSetup();
_EINT(); LPM4;
FRESULT rc; /* Result code */
DIRE dir; /* Directory object */
FILINFO fno; /* File information object */
UINT bw, br, i;
f_mount(0, &Fatfs); /* Register volume work area (never fails) */
printf("\nOpen an existing file (message.txt).\n");
rc = f_open(&Fil, "MESSAGE.TXT", FA_READ);
if (rc) die(rc);
printf("\nType the file content.\n");
for (;;) {
rc = f_read(&Fil, Buff, sizeof Buff, &br); /* Read a chunk of file */
if (rc || !br) break; /* Error or end of file */
for (i = 0; i < br; i++) /* Type the data */
putchar(Buff);
}
if (rc) die(rc);
printf("\nClose the file.\n");
rc = f_close(&Fil);
if (rc) die(rc);
printf("\nCreate a new file (hello.txt).\n");
rc = f_open(&Fil, "HELLO.TXT", FA_WRITE | FA_CREATE_ALWAYS);
if (rc) die(rc);
printf("\nWrite a text data. (Hello world!)\n");
rc = f_write(&Fil, "Hello world!\r\n", 14, &bw);
if (rc) die(rc);
printf("%u bytes written.\n", bw);
printf("\nClose the file.\n");
rc = f_close(&Fil);
if (rc) die(rc);
printf("\nOpen root directory.\n");
rc = f_opendir(&dir, "");
if (rc) die(rc);
printf("\nDirectory listing...\n");
for (;;) {
rc = f_readdir(&dir, &fno); /* Read a directory item */
if (rc || !fno.fname[0]) break; /* Error or end of dir */
if (fno.fattrib & AM_DIR)
printf(" %s\n", fno.fname);
else
printf("%8lu %s\n", fno.fsize, fno.fname);
}
if (rc) die(rc);
printf("\nTest completed.\n");
for (;;) ;
}
求指教
-
好心人啊,看见你回答那个SPI的问题了,我这其实也有好多问题,也有很多药要请教的。
这个FAT困扰我很久了。。。。一直没调通。。。。
-
呃。。。我觉得吧,那只是个端口名称而已,告诉你传输方向是这样的,并不是告诉你谁由谁控制的方向
-
:Cry:
-
我没记错的话是mosi,somi,clk,ste为4线,4线刨去STE是3线制
-
我现在2G的SD卡的初始化,没问题了,底层的SD卡读写也编完了,关键现在从FATFS官网下载了开源程序,不知怎么跟我的SD卡联合起来?有点不好意思,现在不知在程序里该编哪了??望指教!!
-
4线SPI ,STE应该是主机控制从机的端口吧,你那个PDF里应该有一个表格,你看看
[ 本帖最后由 shenmiao0330 于 2012-3-15 14:00 编辑 ]
-
哦!同样在研究这个SD卡啊。。。。纠结的SD卡
-
...没人啊....
-
哎。。。最近很困扰,SD卡的读字节函数老是不对,不知兄弟有什么经验能传授一下??:titter:
-
呵呵,看来遇到同样的问题了。兄弟,你的SD卡是IO口模拟SPI吗?