运行存储的数据如下: usb Connect Success usb start save can1 data DATA 11,11,11,11,11,11,11,11 DATA 11,11,11,11,11,11,11,11 DATA 11,11,11,11,11,11,11,11 DATA 11,11,11,11,11,11,11,11 DATA 11,11,11,11,11,11,11,11 DATA 11,11,11,11,11,11,11,11 DATA 11,11,11,11,11,11,11,11 DATA 11,11,11,11,11,11,11,11 DATA 11,11,11,11,11,11,11,11 DATA 11,11,11,11,11,11,11,11 DATA 11,11,11,11,11,11,11,11 DATA 11,11,11,11,11,11,11,11 DATA 11,11,11,11,11,11,11,11 DATA 11,11,11,11,11,11,11,11 DATA 11,11,11,11,11,11,11,11 DATA 11,11,11,1 ? ^ DATA 11,11,11,11,11,11,11,11 DATA 11,11,11,11,11,11,11,11 DATA 11,11,11,11,11,11,11,11 DATA 11,11,11,11,11,11,11,11 DATA 11,11,11,11,11,11,11,11 DATA 11,11,11,11,11,11,11,11 DATA 11,11,11,11,11,11,11,11 DATA 11,11,11,11,11,11,11,11 DATA 11,11,11,11,11,11,11,11 DATA 11,11,11,11,11,11,11,11 DATA 11,11,11,11,11,11,11,11 DATA 11,11,11,11,11,11,11,11 DATA 11,11,11,11,11,11,11,11 DATA 11,11,11,11,11,11,11,11 DATA 11,11,11,11,11,11,11,11 DATA 11,11,11,11,11,11,11,11 DATA 11,11,11,11, ? ^DATA 11,11,11,11,11,11,11,11 DATA 11,11,11,11,11,11,11,11 DATA 11,11,11,11,11,11,11,11 DATA 11,11,11,11,11,11,11,11 DATA 11,11,11,11,11,11,11,11 DATA 11,11,11,11,11,11,11,11 DATA 11,11,11,11,11,11,11,11 DATA 11,11,11,11,11,11,11,11 DATA 11,11,11,11,11,11,11,11 DATA 11,11,11,11,11,11,11,11 DATA 11,11,11,11,11,11,11,11 DATA 11,11,11,11,11,11,11,11 DATA 11,11,11,11,11,11,11,11 DATA 11,11,11,11,11,11,11,11 DATA 11,11,11,11,11,11,11,11 DATA 11,11,11,11,11,11,11,11 DATA 11,11,11,11,11 ? DATA 11,11,11,11,11,11,11,11 DATA 11,11,11,11,11,11,11,11 usb end save can1 data usb Remove Success 正常应该每行一样,但出现有错行现象。 ============================================================================ 字节写函数 UINT8 CH376ByteWrite( PUINT8 buf, UINT16 ReqCount, PUINT16 RealCount ) { UINT8 s;
xWriteCH376Cmd( CMD2H_BYTE_WRITE ); mDelayS( 30 ); xWriteCH376Data( (UINT8)ReqCount ); // mDelayS( 30 ); xWriteCH376Data( (UINT8)(ReqCount>>8) ); // mDelayS( 30 );
if ( RealCount ) *RealCount = 0; while ( 1 ) { s = Wait376Interrupt( ); if ( s == USB_INT_DISK_WRITE ) { // mDelayS( 100 ); s = CH376WriteReqBlock( buf ); if (s < ReqCount) { Nop() 此处设置断点,不存在s < ReqCount 的时候 ???????????????????? 实际请求的数据如上显示,每行为一次字节写操作 } // mDelayS( 100 ); xWriteCH376Cmd( CMD0H_BYTE_WR_GO ); // xWriteCH376Cmd( CMD0H_BYTE_WR_GO ); //mDelayS( 10 ); buf += s; if ( RealCount ) *RealCount += s; } else if ( s == USB_INT_SUCCESS ) return( s ); /* 结束 */ else return( s ); /* 错误 */ } } ========================================================= 请求字节写函数,请求写入的频率为1S LED_LOG=~LED_LOG; s = show_save_var_can1(tmp); s = CH376ByteWrite( tmp, s, NULL );
s1=CH376ByteWrite( tmp, 0, NULL ); if ((s !=USB_INT_SUCCESS )||(s1 !=USB_INT_SUCCESS )) { Nop() ??????????????此处理设置断点查看,不存在返回不成功的时候,但实际写入到 记录本中的数据如下,存在乱行现象 } =============================================================