CH376初始化、读写U盘

2019-07-21 03:00发布

    CH376_RST = 1;        /* 复位 */
    delay_ms( 20 );
    CH376_RST = 0;        /* 禁止复位 */
    delay_ms( 100 );        /* 延时100毫秒 */
    imInitCH376Host( ) ;   /* 初始化CH376 */



 /* 读写U盘 */
  if(CH376DiskConnect()==USB_INT_SUCCESS)/* 检查U盘是否连接,不支持SD卡 */
  {
   if(CH376DiskMount()==USB_INT_SUCCESS)/* 初始化磁盘并测试磁盘是否就绪 */
   {
/* 获取出厂信息 */
    i = CH376ReadBlock( buf );  /* 如果需要,可以读取数据块CH376_CMD_DATA.DiskMountInq,返回长度 */
    if ( i == sizeof( INQUIRY_DATA ) )  /* U盘的厂商和产品信息 */
    { 
     buf[ i ] = 0;
     printf( "UdiskInfo: %s ", ((P_INQUIRY_DATA)buf) -> VendorIdStr );
    }
    printf( "DiskQuery: " );  /* 检查U盘或者SD卡的剩余空间 */
    s = CH376DiskQuery( (PUINT32)buf ); /* 查询磁盘剩余空间信息,扇区数 */
    printf("s=%02x ",(unsigned short)s );
    printf( "free cap = %ld MB ", *(PUINT32)buf / ( 1000000 / DEF_SECTOR_SIZE ) );
/* 创建 */
    printf( "Create file :" );
    strcpy( (char *)TarName, "\ABC.TXT" ); /* 目标文件名 */
    s = CH376FileCreatePath( TarName );   /* 新建多级目录下的文件,支持多级目录路径,输入缓冲区必须在RAM中 */
    printf("s=%02x ",(unsigned short)s );
/* 写入*/
    printf( "Write :" );
    strcpy((char *)buf, "测试成功1234567890" );
    s = CH376ByteWrite( buf, strlen((const char *)buf), NULL ); /* 以字节为单位向当前位置写入数据块 */
    printf("s=%02x ",(unsigned short)s );
/* 关闭文件 */
    printf("close file " );
    s = CH376FileClose( TRUE );   /* 关闭文件,对于字节读写建议自动更新文件长度 */
    printf("s=%02x ",(unsigned short)s );    }
  }


完整工程http://www.openedv.com/posts/list/6006.htm
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
magicoctoy
1楼-- · 2019-07-21 04:03
 精彩回答 2  元偷偷看……
正点原子
2楼-- · 2019-07-21 04:13
谢谢分享
bht890811
3楼-- · 2019-07-21 08:34
收了,最近正鼓捣这玩意,谢谢!
wwjdwy
4楼-- · 2019-07-21 11:46
 精彩回答 2  元偷偷看……
bht890811
5楼-- · 2019-07-21 16:43
回复【5楼】wwjdwy:
---------------------------------
是的,就是这个目的。
s1q23
6楼-- · 2019-07-21 19:29
求参考例程啊

一周热门 更多>