[求助]初始化時讀U盤指定扇區(qū)數(shù)據(jù)不成功

MCU:mc9s12d64 外部晶振:12MHZ 啟用PLL后為48MHZ

CH375 外部晶振:12MHZ 未啟用PLL

并行口操作方式 INT0,CS,RD,WR,A0,D0~~7在示波器上都與程序給定值相同。

遇到問題: 1,在中斷發(fā)生后用CMD_GET_STATUS命令不能有效的取消中斷標(biāo)志,此程序中的強(qiáng)制取消中斷處理方式在情形出現(xiàn)時要反復(fù)運(yùn)行上百次才能有效的取消中斷標(biāo)志位。

2,現(xiàn)行程序能正確設(shè)置工作模式,初始化USB盤,并檢測無錯誤,正確讀出USB盤的容量,但始終無法正確讀出扇區(qū)的數(shù)據(jù)(RBC_Read),在RBC_Read子程序中,發(fā)送完命令和命令數(shù)據(jù)后的第一次中斷之間的時間用示波器觀測變化非常大,從500多us到6ms的間隔時間都有。若為接近500us的間隔值時,中斷返回值為1D(正確的返回值),接近6ms的間隔時,中斷返回值為1F(斷開)。雙循環(huán):命令與數(shù)據(jù)間的延時長度(0--3000us),數(shù)據(jù)與數(shù)據(jù)間的延時長度(0--255us)都有相同的情形。

部分源程序見附件UploadImages/200841210191864.txt

沒人理了!


void CH375_WR_CMD(byte Command) { CPU_Delay_US(3); CH375_Data=Command; CH375_A0=1; CH375_RD=1; CH375_CS=0; Data_IO =0xff; CH375_WR=0; CH375_WR=0; CH375_WR=0; CH375_WR=1; CH375_RD=1; CH375_CS=1; }

void CH375_WR_DAT(byte Data) { CPU_Delay_US(2); CH375_Data=Data; CH375_RD=1; CH375_CS=0; Data_IO =0xff; CH375_A0=0; CH375_WR=0; CH375_WR=0; CH375_WR=0; CH375_WR=1; CH375_RD=1; CH375_CS=1; CH375_A0=0; }

byte CH375_RD_DAT(void) { byte ReadByte; CPU_Delay_US(2); CH375_WR=1; CH375_CS=0; CH375_A0=0; Data_IO =0x00; CH375_RD=0; ReadByte=CH375_Data; CH375_WR=1; CH375_RD=1; CH375_CS=1; CH375_A0=0; CH375_Data=0; Data_IO =0xff; return ReadByte; }

你可以按照上面的時序來操作下,同時: 1,如果獲取中斷狀態(tài)之后中斷引腳拉不高的話,你可以這樣操作下,將你的中斷引腳撬起來,然后在你插上U盤之后,讀取下中斷狀態(tài)看下中斷引腳拉高了沒有。。


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

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