做一个能读SD卡的东西,用到振南的znfat文件系统,但是主程序里调用读取数据的函数的时候就不能编译了,说没有定义,但是其他的打开文件和创建文件以及写入函数都能正常调用,为什么啊???
主程序如下
#define main_c
#include "includes.h"
#define SEPARATE 5 //保存数据间隔时间,单位秒
sbit K1 = P3^2;
//sbit LED = P4^0; //指示灯
struct FileInfoStruct idata file_info;//文件信息结构实体
/*main主函数*/
void main(void)
{
//P1M0 = 0xff; //P1推挽输出
//P1M1 = 0x00;
// LED = 1; //指示灯亮
usart_timer1_init(); //定时器1初始化,做波特率发生器
printf("\r\n游戏刚刚开始\r\n");
while(SD_Init() != 0) //等待SD卡初始化
{
static unsigned char xdata state=0; //定义静态局部变量
if(state == 0)
{
state = 1;
printf("\r\n正在初始化SD卡……\r\n");
}
else
{
state = 0;
printf("\r\n请检测是否插入SD卡\r\n");
}
}
printf("\r\nSD卡初始化成功\r\n");
FAT32_Init(); //文件系统初始化
printf("\r\n文件系统初始化成功\r\n");
if(FAT32_Open_File(&file_info,"\\TEST.txt",0))//打开.txt
{
printf("\r\n文件打开成功\r\n");;
}
else
{
FAT32_Create_File(&file_info,"\\TEST.txt"); //如果没有则创建一个.txt的文本文档
printf(FAT32_Add_Dat);
}
printf("\r\n进入游戏\r\n\r\n^_^\r\n");
//FAT32_Add_Dat(&file_info,7,"\r\n^_^\r\n"); //每次开机后写入^_^作为分隔符
//LED = 0; //指示灯灭
//EA = 1; //开总中断
FAT32_Open_File(&file_info,"\\TEST.txt",0);
FAT32_Read_FileX(&file_info,0,&file_info.FileSize,printf);
while(1)
{
if(!K1)
{
break;
}
}
}
|