[求助]關(guān)于txt文件生成的數(shù)據(jù)格式

呵呵,之前算錯數(shù)了,用22.1184MHz的晶振,有效脈寬也是夠的。 剛才初步調(diào)試成功了,謝謝各位的幫忙。 之后開始設(shè)計調(diào)試U盤寫文件的程序了,有什么問題再請教各位。


如果是普通的MCS51的話,WR,RD應(yīng)該是六分之一分頻出來的,也就是說22.1184的WR脈沖寬度大概45*6=270NS左右,這個時間已經(jīng)綽綽有余了.在說你是模擬總線的,速度應(yīng)該沒有什么問題才對.如果連普通的51在22.1184下都抗不住那么速度也太慢了.可能是你的總線使用不正確導(dǎo)致這個問題的.另外命令與命令,命令與數(shù)據(jù),數(shù)據(jù)與數(shù)據(jù)之間的延時一定要保證.另外建議把 extern uchar xdata CH375_CMD _at_ 0xa000; extern uchar xdata CH375_DAT _at_ 0x8000; 這種定義方式修改為 unsigned char volatile xdata CH375_CMD _at_ 0xa000; unsigned char volatile xdata CH375_DAT _at_ 0x8000; 第一種方式可能編譯器為了提高速度,會減少訪問.導(dǎo)致出錯.第2種是不會的.


謝謝回復(fù),我會更改volatile的,看到一些程序有用到這個聲明,對聲明的使用不熟悉,所以不敢隨便用。之前是在命令與命令、命令與數(shù)據(jù)、數(shù)據(jù)與數(shù)據(jù)之間的讀寫間隔不足造成的,現(xiàn)在他們之間都加了大約12uS的延時,感覺都能使用了。


12uS的延時有點(diǎn)長了,會降低速度,只要uS級延時準(zhǔn)確的話,那么命令后延時1.5uS,數(shù)據(jù)后延時0.6uS肯定是可以的


我現(xiàn)在是先做PC的USB通訊測試,在例程里 if ( IntStatus == USB_INT_EP2_OUT ) { /* 批量端點(diǎn)下傳成功,接收到命令包 */ CH375_WR_CMD_PORT( CMD_RD_USB_DATA ); /* 從當(dāng)前USB中斷的端點(diǎn)緩沖區(qū)讀取數(shù)據(jù)塊,并釋放緩沖區(qū) */ cnt = CH375_RD_DAT_PORT( ); /* 首先讀取后續(xù)數(shù)據(jù)長度 */ if ( cnt == 0 ) { /* 長度為0,沒有數(shù)據(jù),在某些應(yīng)用中也可以將長度0定義為一種特殊命令 */ CH375_WR_CMD_PORT( CMD_SET_ENDP7 ); /* 設(shè)置USB端點(diǎn)2的IN,也就是批量上傳端點(diǎn) */ CH375_WR_DAT_PORT( 0x0E ); /* 同步觸發(fā)位不變,設(shè)置USB端點(diǎn)2的IN正忙,返回NAK,實際是清除上傳緩沖區(qū)的已有內(nèi)容 */

其中的 CMD_SET_ENDP7 (即0x1d)用戶手冊上沒有找到相關(guān)描述,請問這是個什么指令?


這個命令在CH372DS2.PDF中,用于設(shè)置端點(diǎn)2的應(yīng)答方式及同步標(biāo)志


呵呵,看到了,原來在CH372DS2的文檔里,謝謝。


我現(xiàn)在把CH375連接PC的USB端口,提示找到新硬件,但無法找到安裝驅(qū)動,是不是我要對CH375發(fā)送初始化指令?我參照exam0的例程,里面好像缺少一些初始化操作。


不是. 先看一下VID,PID是多少,到設(shè)備管理器里面找到設(shè)備,屬性里面,詳細(xì)信息,里面有VID,PID,如果不是0的話就說明已經(jīng)正確傳上去了,然后你先把驅(qū)動安裝一下,然后插入設(shè)備,然后自動安裝一下,應(yīng)該就可以了.如果是0的話表示你的下位機(jī)還是有問題的.


請問驅(qū)動在哪里?設(shè)備指的是CH375接入PC吧?


到網(wǎng)上下載,搜索CH372DRV.EXE,驅(qū)動都沒有當(dāng)然找不到了.


謝謝。CH375應(yīng)該也可以用CH372DRV.exe的驅(qū)動吧?


設(shè)備方式下是一樣的.所有的程序參考CH372EVT.ZIP


我手動安裝CH372DRV后,接入CH375沒提示新硬件了,可是PC上好像沒有找到新設(shè)備。

我寫了個簡單調(diào)試程序:

void main(void) { unsigned char i; IE = 0x84; IT1 = 1; EX1 = 1; Delay_mS(500); Delay12uS(); CH375_Device_Init(); while(1) { if (B_USB_Ready) { B_USB_Ready = FALSE; CH375_WR_CMD(CMD_GET_STATUS); CH375_Status = CH375_RD_DAT(); if(CH375_Status == USB_INT_EP2_OUT) { CH375_WR_CMD(CMD_RD_USB_DATA); USB_Count = CH375_RD_DAT(); for (i = 0; i < USB_Count; i++) { USB_dat[i] = CH375_RD_DAT(); } } } } }

//+++++++++++++++++++++++++++++++++++++++++++++

void Delay(void) //短延時 { ; }

//+++++++++++++++++++++++++++++++++++++++++++++

void Delay12uS(void) //12us延時 { uchar i; for(i = 0; i < C_DelayTime12uS; i++) { ; } }

//+++++++++++++++++++++++++++++++++++++++++++++

void Delay_mS(uint n) //1ms延時 { uint t; uint h; for(h = 0; h < n; h++) { for(t = 0; t < C_DelayTime1mS; t++) { ; } } }

//+++++++++++++++++++++++++++++++++++++++++++++

void CH375_WR_CMD(uchar cmd) //向CH375的命令端口寫入命令 { Delay(); CH375_CMD_PORT = cmd; Delay(); }

//+++++++++++++++++++++++++++++++++++++++++++++

void CH375_WR_DAT(uchar dat) //向CH375的數(shù)據(jù)端口寫入數(shù)據(jù) { CH375_DAT_PORT = dat; Delay(); }

//+++++++++++++++++++++++++++++++++++++++++++++

uchar CH375_RD_DAT(void) { Delay(); return(CH375_DAT_PORT); }

//+++++++++++++++++++++++++++++++++++++++++++++

void CH375_Device_Init(void) //CH375設(shè)備方式初始化 { uchar i,j; i = 0; j = 0; CH375_WR_CMD(CMD_SET_USB_MODE); CH375_WR_DAT(0x02); //設(shè)置為使用內(nèi)置固件的USB設(shè)備方式 while(i != CMD_RET_SUCCESS && j < 200) { i = CH375_RD_DAT(); } Delay(); }

//+++++++++++++++++++++++++++++++++++++++++++++

static void Interrupt2_serve(void) interrupt 2 { B_USB_Ready = TRUE; }

//+++++++++++++++++++++++++++++++++++++++++++++

我從其他地方找了個USB發(fā)送數(shù)據(jù)的小軟件,點(diǎn)發(fā)送說找不到USB端口,麻煩幫忙看一下。


在設(shè)備管理器里面看有沒有出現(xiàn)一個外部接口的設(shè)備.按照你說的現(xiàn)象應(yīng)該是驅(qū)動正確安裝了, 另外你先用CH372DUG來測試一下.


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

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