微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 求单片机高手帮我看看程序哪里出错了

求单片机高手帮我看看程序哪里出错了

时间: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);
     }
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top