logo

CH376串口模式,写文件问题
ch376,在写文件时,可以创建文件,但写不进数据,
uint8 CH376ByteWrite( Puint8 buf, uint16 ReqCount, Puint16 RealCount ) /* 以字节为单位向当前位置写入数据块 */
{
uint8 s;
xWriteCH376Cmd( CMD2H_BYTE_WRITE );//0x3c
xWriteCH376Data( (uint8)ReqCount );
xWriteCH376Data( (uint8)(ReqCount>>8) );
// xEndCH376Cmd( );
mDelaymS( 200 );
if ( RealCount ) *RealCount = 0;
while ( 1 ) {
s = Wait376Interrupt( ); // ----在这里返回 0x14,不是0x1e
while (!(MCF_UART_USR(2) & MCF_UART_TX_TEST));
//发送数据
MCF_UART_UTB(2) = 0xcd;
while (!(MCF_UART_USR(2) & MCF_UART_TX_TEST));
//发送数据USB_INT_DISK_WRITE
MCF_UART_UTB(2) = s;
if ( s == USB_INT_DISK_WRITE ) {
s = CH376WriteReqBlock( buf ); /* 向内部指定缓冲区写入请求的数据块,返回长度 */
xWriteCH376Cmd( CMD0H_BYTE_WR_GO );
// xEndCH376Cmd( );
buf += s;
if ( RealCount ) *RealCount += s;
}
/* else if ( s == USB_INT_SUCCESS ) return( s );*/ /* 结束 */
else return( s ); /* 错误 */
}
}[b]文字[/b]

这问题沉这么久,没人解答,我也遇此


我也遇到这种情况,数据写到中途,还没有达到所需要的字节数,就自动结束了,不知道写数据时发生生么情况了,提前结束写数据。

这人很懒,什么都没留下

楼上的同学你有根据你描述的问题做过一些DEBUG测试吗?

因为你只给我结论,所以不太好确认问题所在,如果你至少能写一部分数据说明很大可能问题出在软件代码上。

如果问题还没解决,可留言贴出代码或者电联025-52638375


经过测试发现写操作过程中,自动移动的文件指针超出原文件结束位置,如何用CMD_BYTE_WRITE指令实现请求字节数为0,来刷新文件长度,求指点

CH376TByteWrite(null,  0,  null) 

这人很懒,什么都没留下
只有登录才能回复,可以选择微信和github账号登录