在keil单步运行可以看到 SD卡新建了文件夹和文件,但是写入数据的时候只是写入了一个,单步运行都可以 S都是0x14,不使用调试模式就不能写入新建文件夹和新建文件等操作。可以确定初始化,取反数值是通过的。
s = CH376DirCreatePath(PathName); // 创建文件夹
s = CH376FileCreate(" BC.TXT ");
s = CH376ByteWrite(SPI_TX_BUFFER, strlen((const char *)SPI_TX_BUFFER), NULL);
//写入数据的使用的是官方提供的函数 SPI_TX_BUFFER数组是 0-9 长度为0x1E
UINT8 CH376ByteWrite( PUINT8 buf, UINT16 ReqCount, PUINT16 RealCount )
{
UINT8 s;
xWriteCH376Cmd( CMD2H_BYTE_WRITE );
xWriteCH376Data( (UINT8)ReqCount );
xWriteCH376Data( (UINT8)(ReqCount>>8) );
xEndCH376Cmd( );
if ( RealCount )
{
*RealCount = 0;
}
while ( 1 )
{
s = Wait376Interrupt( );
//程序到这里只运行了一次,然后就 读取的数据是0x14就是成功操作,用读卡器看只写了一个数据
if ( s == USB_INT_DISK_WRITE )
{
s = CH376WriteReqBlock( buf ); /* 向内部指定缓冲区写入请求的数据块,返回长度 */
xWriteCH376Cmd( CMD0H_BYTE_WR_GO );
xEndCH376Cmd( );
buf += s;
if ( RealCount ) *RealCount += s;
}
else
{
return( s ); /* 错误 */
}
}
}