我仿照CH375EV0写了一个读U盘一个扇区的程序。但这个程序很不稳定,有时可以,有时候又写不进去。有时候写了CMD_DISK_WR_GO命令后不来中断。或者是前4次写了CMD_DISK_WR_GO命令后来了中断,第5次循环写了CMD_DISK_WR_GO就不来中断了。这是为什么啊??? 之前375已经复位然后设置成了模式6并且初始化已经成功了。其中 cmd():写命令 wrd():写数据 re():读数据 Wait_Int():等待并读取中断状态。几个函数应该没问题,在读U盘的时候已经用到过了,并且成功地读出了数据。 char i,a[512],stat_wr; int len=64,t=0; long add; cmd(CMD_DISK_WRITE) ; // 写数据 wrd(i=add); //扇区号 wrd(i=(add>>8)) ; wrd(i=(add>>16)) ; wrd(i=(add>>24)) ; wrd(1); //写1个扇区 for(i=1;i<9;i++) { stat_wr=Wait_Int(); if(stat_wr==USB_INT_DISK_WRITE) { cmd (CMD_WR_USB_DATA7); //向375缓冲写数据 wrd(len); while(len--) { wrd(a[t]); t++; } len=64; _NOP(); cmd(CMD_DISK_WR_GO); } else break; } if(i==9) stat_wr=Wait_Int(); else stat_wr=0xff; 这个程序有什么问题吗?
查看: 1297
回复: 1
[求助]写U盘的程序为什么总是工作不稳定阿???
热门产品 :
CH641: PD及无线充电专用MCU
你的C语言写得有点菜,但我没有看出什么逻辑问题,会不会是硬件问题?我的经验是CH375对电源干扰敏感,你可以测试一下读的稳定性,如果连续读上几分钟都没有问题,就基本排除了硬件问题。
请勿发布广告和违法内容, 代码可以选择编辑器代码语言格式, 更易他人阅读帮助您, 或者留下联系方式,以便更好更快服务您
只有登录才能回复,可以选择微信账号登录