CH375和CH372常見問題的解決[討論]

我用的MC9S08控制CH372B,內(nèi)置固件模式,實(shí)現(xiàn)并口轉(zhuǎn)USB功能。為何讀數(shù)據(jù)/狀態(tài)時,最高位始終是1,6~0位是正確的。我發(fā)送命令、數(shù)據(jù)CH372B的響應(yīng)是正常的。更換了一片CH372B問題一樣。


您好,您可以確認(rèn)以下幾點(diǎn):

  1. 確認(rèn)兩顆芯片之間并口通訊是否正常,即發(fā)送讀獲取版本號命令,其次您設(shè)置為內(nèi)置固件模式,電腦是否正確識別到了372設(shè)備。

  2. 關(guān)于讀取數(shù)據(jù)的時候,您的MCU(控制芯片)IO的輸入配置是否正確。

  3. 檢查硬件電路,D7腳的連接是否正常,以及查看讀取數(shù)據(jù)的程序是否哪里有錯誤的操作。


您好,謝謝您及時的解答:

1、兩顆芯片通訊完全正常,我給CH372寫入的數(shù)據(jù)和命令都正常,讀出數(shù)據(jù)0~6位也正常,就第7位讀出一直為1;我都用你們的調(diào)試軟件試過,即單片機(jī)收到數(shù)據(jù)后,原樣返回;如果忽略第7位數(shù)據(jù),全部正常。電腦識別372設(shè)備正常;

2、我最不解的是為何同一個并口,只有1位會有問題?


2、我比較疑惑的是,我的IO口是8位口,都是統(tǒng)一操作的,為何會出現(xiàn)只有1位不正常?更換過CH372B,問題依舊。



我又進(jìn)行了如下實(shí)驗(yàn):

? ?上電后,不進(jìn)行任何設(shè)置,直接讀取并口數(shù)據(jù)。按照數(shù)據(jù)手冊的描述,讀出數(shù)應(yīng)該是0,但是讀到的是0x80。我用示波器測量D7信號,確實(shí)始終是高電平。而D0~D6,在RD信號為低時,會輸出低電平,RD信號為高時,會恢復(fù)到高電平。我又將單片機(jī)和D7連接的引腳斷開,D7也始終是高電平。最后我又將D7接到另一個輸入口上,讀到的也始終是1,實(shí)在沒有辦法了。

? ? 總之,就是上電后,我只執(zhí)行讀取操作,D7和D6~D0的效果就不一樣。


讀數(shù)子程序:

byte ch372_data_read(void)

{

? volatile byte recv_data1;??

? ? PTHDD=0x00;? ? ? ? ?//port input mode? ?

? ? DATA_WR;? //A0=0? ? ??

? ? CH372_RD_EN;? //RD=0;

? ? DELAY(1);

? ? SRS=0x00;

? ? recv_data1=PTHD;? ??

? ? CH372_RD_DIS;? ?//RD=1;

? return recv_data1;

}


CH372.jpg

以上是CH372電路,I/O引腳和MCU引腳直連




您好,看您的原理圖,這邊CH372的最小系統(tǒng)圖是沒有問題的。關(guān)于您讀取數(shù)據(jù)的函數(shù),請問您CS腳有控制么?讀取函數(shù)您可以參考這段代碼移植過去進(jìn)行嘗試。您也可以把MCU的D7腳接地,然后讀取數(shù)據(jù),看看是否也是為1.

? ?u8 PortData;? ?

? ?DATA_MODE_IN;? //把STM32連接CH375的數(shù)據(jù)端口配置成輸入,讀取CH372的數(shù)據(jù)


delay_us(10);? ?//延時

CS=0;? ? ? ? ? ?//打開片選

delay_us(10);

A0=0;? ? ? ? ? ?//數(shù)據(jù)模式

delay_us(10);

RD=0;? ? ? ? ? ?//打開讀使能

delay_us(10);

PortData = (u8)( GPIO_ReadInputData(GPIO_CH375_Data) );? //讀取數(shù)據(jù)

delay_us(10);

RD=1;? ? ? ? ? ?//關(guān)閉讀使能

delay_us(10);

CS=1;? ? ? ? ? ?//關(guān)閉片選

delay_us(10);

A0=1;? ? ? ? ? ?//恢復(fù)A0為高電平

delay_us(10);

? ?return PortData; //返回讀到的數(shù)據(jù)



你好,我想問一些關(guān)于CH376的問題:

1、文件屬性(創(chuàng)建時間、修改時間等)是在創(chuàng)建文件的時候自動生成的?還是需要我發(fā)指令,把這些屬性都寫到某個固定位置?【我實(shí)測發(fā)現(xiàn)在PC端顯示U盤中文件的創(chuàng)建時間、修改時間都不對,修改時間都是2004.01.01】

2、參照EXAM13例程,讀取文件屬性返回的長度為32,正確,但屬性內(nèi)容也全部為32,是哪里出錯了嗎?

企業(yè)微信截圖_16680450119411.png


你好,我想問一些關(guān)于CH376的問題:

1、文件屬性(創(chuàng)建時間、修改時間等)是在創(chuàng)建文件的時候自動生成的?還是需要我發(fā)指令,把這些屬性都寫到某個固定位置?【我實(shí)測發(fā)現(xiàn)在PC端顯示U盤中文件的創(chuàng)建時間、修改時間都不對,修改時間都是2004.01.01】

2、參照EXAM13例程,讀取文件屬性返回的長度為32,正確,但屬性內(nèi)容也全部為32,是哪里出錯了嗎?

企業(yè)微信截圖_16680450119411.png


直接修改文件屬性是可以成功的,比如直接把文件名的后綴從TXT改為EXL。但是如果要先判斷這個文件是不是TXT然后再修改的話,就得先把屬性讀出來判斷,這時讀取就會出錯。


讀到的文件屬性32好像一直是前面返回的長度,32對應(yīng)的字符是space(空格)。

因?yàn)槲矣譁y了讀U盤的廠商信息和產(chǎn)品信息,INQUIRY_DATA結(jié)構(gòu)體類型的大小為36,所以讀到的長度也是36正確,緊接著讀到的廠商信息和產(chǎn)品信息內(nèi)容也全是36,對應(yīng)的字符是$$$$$$$$$$$$$$$$$$$$$$$$$$$$

請問這是哪里的問題呢?望解答!謝謝


您好,正常來說廠商的這些信息都是unicode編碼,您可以看一下是否為編碼格式問題,導(dǎo)致的亂碼顯示等。


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

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