学前班
最后登录1970-1-1
在线时间 小时
注册时间2017-7-20
|
火哥,我一直在用你编的《库开发实战指南》学习stm32F103,SD卡读写实验成功了,可是文件系统移植失败,无法正常读写,书带光盘里的程序也无法实现SD卡读写,我贴出程序帮我看看呗
#include "stm32f10x.h"
#include "sdio_sdcard.h"
#include "usart1.h"
#include "ff.h"
int res;
int a;
FIL fsrc,fdst;
FATFS fs;
UINT br, bw;
BYTE buffer[512];
BYTE textFileBuffer[] = "感谢您选用 野火STM32开发板 !^_^ \r\n";
int main(void)
{
USART1_Config();
NVIC_Configuration();
printf("\r\n 这是一个MicroSD卡文件系统实验(FATFS R0.09)\n");
printf ( "\r\n disk_initialize starting......\n " );
f_mount(0,&fs);
res = f_open(&fdst,"0:/Demo.TXT",FA_CREATE_NEW | FA_WRITE);
if ( res == FR_OK )
{
/* 将缓冲区的数据写到文件中 */
res = f_write(&fdst, textFileBuffer, sizeof(textFileBuffer), &bw);
printf( "\r\n 文件创建成功 \n" );
f_close(&fdst);
}
else if ( res == FR_EXIST )
{
printf( "\r\n 文件已经存在 \n" );
}
/* 以只读的方式打开刚刚创建的文件 */
res = f_open(&fdst, "0:/Demo.TXT", FA_OPEN_EXISTING | FA_READ); /* 打开文件 */
br = 1;
a = 0;
for (;;)
{
for ( a=0; a<512; a++ ) /* 清缓冲区 */
buffer[a]=0;
res = f_read( &fdst, buffer, sizeof(buffer), &br ); /* 将文件里面的内容读到缓冲区 */
printf("\r\n %s ", buffer);
if (res || br == 0) break; /* 错误或者到了文件尾 */
}
f_close(&fdst); /* 关闭打开的文件 */
while (1)
{}
}
|
|