[求助]寫U盤的程序?yàn)槭裁纯偸枪ぷ鞑环€(wěn)定阿???

我仿照CH375EV0寫了一個(gè)讀U盤一個(gè)扇區(qū)的程序。但這個(gè)程序很不穩(wěn)定,有時(shí)可以,有時(shí)候又寫不進(jìn)去。有時(shí)候?qū)懥薈MD_DISK_WR_GO命令后不來中斷?;蛘呤乔?次寫了CMD_DISK_WR_GO命令后來了中斷,第5次循環(huán)寫了CMD_DISK_WR_GO就不來中斷了。這是為什么啊??? 之前375已經(jīng)復(fù)位然后設(shè)置成了模式6并且初始化已經(jīng)成功了。其中 cmd():寫命令 wrd():寫數(shù)據(jù) re():讀數(shù)據(jù) Wait_Int():等待并讀取中斷狀態(tài)。幾個(gè)函數(shù)應(yīng)該沒問題,在讀U盤的時(shí)候已經(jīng)用到過了,并且成功地讀出了數(shù)據(jù)。 char i,a[512],stat_wr; int len=64,t=0; long add; cmd(CMD_DISK_WRITE) ; // 寫數(shù)據(jù) wrd(i=add); //扇區(qū)號(hào) wrd(i=(add>>8)) ; wrd(i=(add>>16)) ; wrd(i=(add>>24)) ; wrd(1); //寫1個(gè)扇區(qū) for(i=1;i<9;i++) { stat_wr=Wait_Int(); if(stat_wr==USB_INT_DISK_WRITE) { cmd (CMD_WR_USB_DATA7); //向375緩沖寫數(shù)據(jù) 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; 這個(gè)程序有什么問題嗎?


熱門產(chǎn)品 : USB3.0 HUB控制器:CH634

你的C語言寫得有點(diǎn)菜,但我沒有看出什么邏輯問題,會(huì)不會(huì)是硬件問題?我的經(jīng)驗(yàn)是CH375對(duì)電源干擾敏感,你可以測(cè)試一下讀的穩(wěn)定性,如果連續(xù)讀上幾分鐘都沒有問題,就基本排除了硬件問題。


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频