[求助]工作于主机方式,头文件里的设备方式可以去掉吗?

比如是这样的 :#define CMD_SET_ENDP2 0x18 /* 设备方式: 设置USB端点0的接收器 */ /* 输入: 工作方式 */ /* 位7为1则位6为同步触发位, 否则同步触发位不变 */ /* 位3~位0为事务响应方式: 0000-就绪ACK, 1110-正忙NAK, 1111-错误STALL */

#define CMD_SET_ENDP3 0x19 /* 设备方式: 设置USB端点0的发送器 */ /* 输入: 工作方式 */ /* 位7为1则位6为同步触发位, 否则同步触发位不变 */ /* 位3~位0为事务响应方式: 0000~1000-就绪ACK, 1110-正忙NAK, 1111-错误STALL */ 我把头文件的这些去掉,那么主机方式的CH375FileCreate会受到影响吗?我还把设备方式的端点1也删除了呢?

不会影响的


但是我Create的文件里面,文件是建立了。但是里面没有我要写进去的东西!!头文件的那些定义被我删除了会不会影响到了CH375FileWriteX写这个函数呢?


应该不会的,你再看看你程序写了内容后有没有更新文件长度,还有就是你的缓冲区是否正确。


头文件相关定义最好不要删除,除非你完全明白, 这可是高手写的啊^_^,用好头文件不会产生多余的代码,程序能正确稳定的执行.


我是用CH375FileWriteX这个函数写的,缓冲区的地址是在参数中指定的。比如unsigned char a_sub[512];接着mCmdParam.WriteX.mDataBuffer=a_sub;用函数CH375FileClose();它会自动更新文件长度。这样应该不会错吧?


你把这段相关程序贴出来看看可以吗???


strcpy((char*)(mCmdParam.Create.mPathName), "\\ZYJ_TEST.TXT"); tmp = CH375FileCreate( ); if(tmp == ERR_SUCCESS) { PRT("CH375FileCreate:OK\r\n"); } else { PRT("CH375FileCreate:ERR %d\r\n",tmp); } { T_U16 i; for(i=0;i sec_buf[i] = '*'; for(i=0;i<4;i++) { mCmdParam.WriteX.mSectorCount = 1; mCmdParam.WriteX.mDataBuffer = sec_buf; current_buffer = sec_buf; tmp = CH375FileWriteX(); if(tmp == ERR_SUCCESS) { PRT("CH375FileWrite:Sector[%d] OK\r\n",i); } else { PRT("CH375FileWrite:Sector[%d] ERR=%d\r\n",i,tmp); } } PRT("CH375vFileSize=%d\r\n",CH375vFileSize); CH375vFileSize = 2048; tmp = CH375FileClose(); 其中sec_buf已经定义 unsigned char sec_buf[512]={0}.[b]文字[/b]


全局变量CH375vFileSize不能随意更改的,你把这一行换成 mCmdParam.Close.mUpdateLen = 1;/*关闭时更新文件长度*/


还是不行.我用读的程序调试模块,还是读这个文件,显示可以打开.里面只有一个字节.


感觉还是文件长度的更新没有成功,要不你用另外两种更新文件的方法试一试。 1、最后再用CH375FileWrite,写入0 扇区数据,强制更新文件长度; 2、调用CH375FileModify,指定修改文件长度;


搞定,用CH375FileModify可以做到。谢谢了。


只有登录才能回复,可以选择微信账号登录