求单片机高手帮我看看程序哪里出错了
时间:10-02
整理:3721RD
点击:
这是主程序,是关于读写U盘的程序。我现在能够实现新建文件sxz.txt,但是没有数据写到sxz.txt里面,程序哪里出错了,新手求指导
void main()
{
lcd_init(); //1602初始化显示
UART_Init(); //串口初始化
UART_Send_Str("串口通信测试...\n"); //能看到则是好的
if(!CH375LibInit())
{
UART_Send_Str("初始化CH375程序库及CH375芯片成功!\n");
UART_Send_Str("插入U盘\n");
UART_Send_Str("开始检测U盘是否插入...\n");
while(CH375DiskConnect()!=ERR_SUCCESS)
{
delay(3000);
}
UART_Send_Str("U盘已经插入\n");
UART_Send_Str("开始检测U盘是否就绪...\n");
while(CH375DiskReady()!=ERR_SUCCESS)
{
delay(1000);
}
UART_Send_Str("U盘已经就绪,可以操作\n");
UART_Send_Str("获取磁盘物理总容量...\n");
CH375DiskSize();
UART_Put_Inf("硬盘物理总容量为(扇区):",mCmdParam.DiskSize.mDiskSizeSec);
UART_Send_Str("获取磁盘信息...\n");
CH375DiskQuery();
UART_Put_Inf("磁盘总容量(兆):",mCmdParam.Query.mTotalSector/2048);
UART_Put_Inf("剩余容量(兆):",mCmdParam.Query.mFreeSector/2048);
UART_Send_Str("磁盘上的文件系统为:");
switch(mCmdParam.Query.mDiskFat)
{
case 0:
UART_Send_Str("未知文件系统\n");
break;
case 1:
UART_Send_Str("FAT12\n");
break;
case 2:
UART_Send_Str("FAT16\n");
break;
case 3:
UART_Send_Str("FAT32\n");
break;
}
UART_Send_Str("创建新文件\n");
strcpy(mCmdParam.Create.mPathName,"\\sxz.TXT");
err=CH375FileCreate();
if(err==ERR_SUCCESS)
{
UART_Send_Str("文件创建成功\n");
Show_File_Inf();
}
else
{
UART_Send_Str("文件创建失败\n");
}
}
else
{
UART_Send_Str("初始化CH375程序库及CH375芯片失败!\n");
}
UART_Send_Str("以字节模式写入:\n");
while(1)
{
read_temp(1); //读取温度
ds1820disp(1); //显示温度
i=u32tostr(tvalue,towrite); //将温度值 转为字符串,好写入U盘
temp=towrite[i-1];
towrite[i-1]='.';
towrite=temp;
towrite[i+1]=0x0d;
towrite[i+2]=0x0a;
towrite[i+3]=0;
UART_Send_Str(towrite);
len=strlen(towrite);
mCmdParam.ByteWrite.mByteCount=len%MAX_BYTE_IO;
for(k=0;k<len%MAX_BYTE_IO;k++)
{
mCmdParam.ByteWrite.mByteBuffer[k]=towrite[k];
}
CH375ByteWrite();
mCmdParam.ByteWrite.mByteCount=0;
CH375ByteWrite();
UART_Put_Inf("当前文件的偏移量为:",CH375vCurrentOffset);
read_temp(2); //读取温度
ds1820disp(2); //显示温度
i=u32tostr(tvalue,towrite);
temp=towrite[i-1];
towrite[i-1]='.';
towrite=temp;
towrite[i+1]=0x0d;
towrite[i+2]=0x0a;
towrite[i+3]=0;
UART_Send_Str(towrite);
len=strlen(towrite);
mCmdParam.ByteWrite.mByteCount=len%MAX_BYTE_IO;
for(k=0;k<len%MAX_BYTE_IO;k++)
{
mCmdParam.ByteWrite.mByteBuffer[k]=towrite[k];
}
CH375ByteWrite();
mCmdParam.ByteWrite.mByteCount=0;
CH375ByteWrite();
UART_Put_Inf("当前文件的偏移量为:",CH375vCurrentOffset);
}
}
void main()
{
lcd_init(); //1602初始化显示
UART_Init(); //串口初始化
UART_Send_Str("串口通信测试...\n"); //能看到则是好的
if(!CH375LibInit())
{
UART_Send_Str("初始化CH375程序库及CH375芯片成功!\n");
UART_Send_Str("插入U盘\n");
UART_Send_Str("开始检测U盘是否插入...\n");
while(CH375DiskConnect()!=ERR_SUCCESS)
{
delay(3000);
}
UART_Send_Str("U盘已经插入\n");
UART_Send_Str("开始检测U盘是否就绪...\n");
while(CH375DiskReady()!=ERR_SUCCESS)
{
delay(1000);
}
UART_Send_Str("U盘已经就绪,可以操作\n");
UART_Send_Str("获取磁盘物理总容量...\n");
CH375DiskSize();
UART_Put_Inf("硬盘物理总容量为(扇区):",mCmdParam.DiskSize.mDiskSizeSec);
UART_Send_Str("获取磁盘信息...\n");
CH375DiskQuery();
UART_Put_Inf("磁盘总容量(兆):",mCmdParam.Query.mTotalSector/2048);
UART_Put_Inf("剩余容量(兆):",mCmdParam.Query.mFreeSector/2048);
UART_Send_Str("磁盘上的文件系统为:");
switch(mCmdParam.Query.mDiskFat)
{
case 0:
UART_Send_Str("未知文件系统\n");
break;
case 1:
UART_Send_Str("FAT12\n");
break;
case 2:
UART_Send_Str("FAT16\n");
break;
case 3:
UART_Send_Str("FAT32\n");
break;
}
UART_Send_Str("创建新文件\n");
strcpy(mCmdParam.Create.mPathName,"\\sxz.TXT");
err=CH375FileCreate();
if(err==ERR_SUCCESS)
{
UART_Send_Str("文件创建成功\n");
Show_File_Inf();
}
else
{
UART_Send_Str("文件创建失败\n");
}
}
else
{
UART_Send_Str("初始化CH375程序库及CH375芯片失败!\n");
}
UART_Send_Str("以字节模式写入:\n");
while(1)
{
read_temp(1); //读取温度
ds1820disp(1); //显示温度
i=u32tostr(tvalue,towrite); //将温度值 转为字符串,好写入U盘
temp=towrite[i-1];
towrite[i-1]='.';
towrite=temp;
towrite[i+1]=0x0d;
towrite[i+2]=0x0a;
towrite[i+3]=0;
UART_Send_Str(towrite);
len=strlen(towrite);
mCmdParam.ByteWrite.mByteCount=len%MAX_BYTE_IO;
for(k=0;k<len%MAX_BYTE_IO;k++)
{
mCmdParam.ByteWrite.mByteBuffer[k]=towrite[k];
}
CH375ByteWrite();
mCmdParam.ByteWrite.mByteCount=0;
CH375ByteWrite();
UART_Put_Inf("当前文件的偏移量为:",CH375vCurrentOffset);
read_temp(2); //读取温度
ds1820disp(2); //显示温度
i=u32tostr(tvalue,towrite);
temp=towrite[i-1];
towrite[i-1]='.';
towrite=temp;
towrite[i+1]=0x0d;
towrite[i+2]=0x0a;
towrite[i+3]=0;
UART_Send_Str(towrite);
len=strlen(towrite);
mCmdParam.ByteWrite.mByteCount=len%MAX_BYTE_IO;
for(k=0;k<len%MAX_BYTE_IO;k++)
{
mCmdParam.ByteWrite.mByteBuffer[k]=towrite[k];
}
CH375ByteWrite();
mCmdParam.ByteWrite.mByteCount=0;
CH375ByteWrite();
UART_Put_Inf("当前文件的偏移量为:",CH375vCurrentOffset);
}
}