智能车制作
标题: SD卡,不能写入数据,感觉在初始化的时候就有问题,求指导 [打印本页]
作者: dss875914213 时间: 2016-5-24 17:13
标题: SD卡,不能写入数据,感觉在初始化的时候就有问题,求指导
void img_sd_init(void)
{
int fireres;
char myfilename[20];
uint16 imgsize[] = {
CAMERA_H,
CAMERA_W,
//CAMERA_COLOR,
}; //高、宽、摄像头颜色类型
uint32 mybw;
uint32 Imag_num = 0;
f_mount(0, &firefs);
printf("DSS!\n");
do
{
Imag_num ++;
sprintf(myfilename, "0:/fire%d.sd", Imag_num);
fireres = f_open( &firesrc , myfilename, FA_CREATE_NEW | FA_WRITE);
if(firefs.fs_type == 0)
{
firesrc.fs = 0;
return;
}
}while(fireres == FR_EXIST); //如果文件存在,则命名继续加1
printf("DSS2!\n");
if ( fireres == FR_OK )
{
OLED_P6x8Str(10,1,"SD Card OK!");
printf("SD Card OK!\n");
fireres = f_write(&firesrc, imgsize, sizeof(imgsize),&mybw); //先写入高和宽,方便上位机处理
}
else
{
OLED_P6x8Str(10,1,"SD Card Error!");
printf("SD Card Error!\n");
f_close(&firesrc);
firesrc.fs = 0;
while(1);
}
}
程序运行到 do
{
Imag_num ++;
sprintf(myfilename, "0:/fire%d.sd", Imag_num);
fireres = f_open( &firesrc , myfilename, FA_CREATE_NEW | FA_WRITE);
if(firefs.fs_type == 0)
{
firesrc.fs = 0;
return;
}
就返回了,有人知道是为什么吗
硬件我检查了一下,没有问题。
SD卡使用,写入图像前,需要格式化或者新建文件吗
作者: 六步上篮 时间: 2016-5-24 20:29
*外的库,有时候需要多换几个卡试试
作者: dss875914213 时间: 2016-5-25 09:29
SD卡使用前,使用的那几个引脚不用初始化吗,感觉他们的函数都没有初始化
FIL fdst; //文件
FATFS fs; //文件系统
uint32 size, sizetmp;
int res;
char *str = "感谢您选用 野火Kinetis开发板 !^_^\n野火初学123论坛:chuxue123.com";
uint8 buff[BUFF_SIZE];
memset(buff,0,BUFF_SIZE);
f_mount(0, &fs); //挂载文件系统
//初始化 SD卡 在 f_open 上执行,目前代码只支持打开一个文件(由 _FS_SHARE 配置),频繁打开文件会消耗CPU资源
res = f_open(&fdst, "0:/FireDemo.txt", FA_OPEN_ALWAYS | FA_WRITE | FA_READ); //打开文件,如果没有就创建,带读写打开
if( res == FR_DISK_ERR)
{
printf( "\n没插入SD卡??\n" );
return;
}
else if ( res == FR_OK )
{
printf( "\n文件打开成功 \n" );
}
else
{
printf("\n返回值异常");
return;
}
f_puts(str, &fdst); //往文件里写入字符串
f_sync(&fdst); //刚才写入了数据,实际上数据并没真正完成写入,需要调用此函数同步或者关闭文件,才会真正写入
size = f_size(&fdst); //获取文件的大小
printf( "\n文件大小为:%d \n" , size); //串口打印文件的大小
if(size > BUFF_SIZE)size = BUFF_SIZE; //防止溢出
f_lseek(&fdst, 0); //把指针指向文件顶部
f_read (&fdst, buff, size, &sizetmp); //读取
printf("文件内容为:\n%s", (char const *)buff);
f_close(&fdst); //关闭文件
while(1);
欢迎光临 智能车制作 (http://111.231.132.190/) |
Powered by Discuz! X3.2 |