測(cè)試ch372是否正常工作的問題

如題:在測(cè)試ch372是否正常工作時(shí),讀出來的數(shù)據(jù)和寫進(jìn)去的數(shù)值是一樣的,比如寫0x55,讀出來的也是0x55;寫進(jìn)去0xaa,讀出來的也是0xaa;計(jì)算機(jī)也可以識(shí)別ch372,單片機(jī)端口和ch372經(jīng)測(cè)試連接也是好的,真的不知道是什么原因?有人可以幫忙嗎?謝謝了,將程序附上: #define CH372_A0_H PORTC|=(1<<1) #define CH372_A0_L PORTC&=~(1<<1) #define CH372_CS_H PORTC|=(1<<3) #define CH372_CS_L PORTC&=~(1<<3) #define CH372_INT_H PORTC|=(1<<0) #define CH372_INT_L PORTC&=~(1<<0) #define CH372_WR_H PORTG|=(1<<0) #define CH372_WR_L PORTG&=~(1<<0) #define CH372_RD_H PORTG|=(1<<1) #define CH372_RD_L PORTG&=~(1<<1) void CH372_PORT_INT() { DDRC|=(1<<1)|(1<<3);//A0,CS設(shè)置為輸出方向 DDRG|=(1<<0)|(1<<1);//WR,RD設(shè)置為輸出方向 CH372_CS_L; CH372_WR_H; CH372_RD_H ; CH372_A0_L; DDRA=0x00; PORTA=0xff; } void writech372cmd(unsigned char cmd) { ch372_delay_us();ch372_delay_us(); DDRA = 0xFF; PORTA=cmd; CH372_A0_H; CH372_CS_L;CH372_WR_L; CH372_CS_L;CH372_WR_H; CH372_CS_H; CH372_A0_L; DDRA=0x00; ch372_delay_us();ch372_delay_us(); } void writech372data(unsigned char data) { ch372_delay_us();ch372_delay_us(); DDRA = 0xFF; PORTA=data; CH372_A0_L;CH372_CS_L;CH372_WR_L; CH372_CS_L; CH372_WR_H ; CH372_CS_H; CH372_A0_H; DDRA=0x00; ch372_delay_us();ch372_delay_us(); } unsigned char readch372data(void) { unsigned char data; ch372_delay_us();ch372_delay_us(); DDRA=0x00; CH372_A0_L; CH372_CS_L; CH372_RD_L; CH372_WR_H ; CH372_CS_L; data=PORTA; CH372_RD_H;CH372_CS_H;CH372_A0_H; ch372_delay_us();ch372_delay_us(); return (data); }

void main() { unsigned char i; CH372_PORT_INT(); led_DDR; led_off; /*--------------------測(cè)試CH375是否正常工作,可選操作,通常不需要----------- */

writech372cmd(CMD_CHECK_EXIST); //測(cè)試CH372/CH375是否正常工作 writech372data(0x55); //寫入測(cè)試數(shù)據(jù) i = ~ 0xaa; //返回?cái)?shù)據(jù)應(yīng)該是測(cè)試數(shù)據(jù)取反,即0xaa if (readch372data()!=0x55) // CH372/CH375不正常 { led_on; for ( i=80; i!=0; i-- ) { writech372cmd(CMD_RESET_ALL);//多次重復(fù)發(fā)命令,執(zhí)行硬件復(fù)位 readch372data(); } writech372cmd(0); delay_nms(50); }

/*------------------------設(shè)置USB工作模式, 必要操作----------------------*/

writech372cmd(CMD_SET_USB_MODE);// 設(shè)置USB工作模式 writech372data(2); // 設(shè)置為使用內(nèi)置固件的USB設(shè)備方式 for ( i=100; i!=0; i-- ) // 等待操作成功,通常需要等待10uS-20uS { if(readch372data()==CMD_RET_SUCCESS) break; } while(1); }

補(bǔ)充一下,我用的單片機(jī)是atmega128;


一般來說,如果測(cè)試沒有成功,那基本上是硬件的原因。你去查一下你的硬件連線是否和你在軟件中定義的是否一致。


計(jì)算機(jī)可以識(shí)別372,驅(qū)動(dòng)可以安裝嗎?可不可以正常通信? 若可以說明的硬件沒有問題. 測(cè)試命令改為: writech372cmd(CMD_CHECK_EXIST); //測(cè)試CH372/CH375是否正常工作 writech372data(0x55); //寫入測(cè)試數(shù)據(jù) i = ~ 0x55; //返回?cái)?shù)據(jù)應(yīng)該是測(cè)試數(shù)據(jù)取反,即0xaa while(readch372data()!=i) // CH372/CH375不正常 { led_on; for ( i=80; i!=0; i-- ) { writech372cmd(CMD_RESET_ALL);//多次重復(fù)發(fā)命令,執(zhí)行硬件復(fù)位 readch372data(); } //writech372cmd(0); delay_nms(50); }


提示找到新硬件了,而且是自動(dòng)安裝驅(qū)動(dòng)的,還有在usb設(shè)備ch372調(diào)試工具軟件的設(shè)備狀態(tài)是:檢測(cè)到有ch372設(shè)備已插入,而且廠商ID和設(shè)備ID都有。設(shè)備可以打開關(guān)閉,具體的和計(jì)算機(jī)通信還沒有調(diào)試。


這說明已經(jīng)通訊成功了.測(cè)試命令理解錯(cuò)誤


請(qǐng)問我測(cè)試ch372是否正常工作時(shí) 如果發(fā)55 返回的是aa .. 但是電腦顯示不出來發(fā)現(xiàn)新硬件 怎么回事啊... 郁悶....


測(cè)試命令只是測(cè)試硬件是否正常工作的,做完后設(shè)置模式,不知道你設(shè)置模式有沒有成功,設(shè)置模式幾?


"測(cè)試命令理解錯(cuò)誤",那這樣的話我可以繼續(xù)做通訊嗎?還是要解決這個(gè)問題再做下面的,要是解決,怎樣解決這個(gè)測(cè)試命令理解錯(cuò)誤呢?


解決了,是軟件的問題,謝謝大家了


請(qǐng)問在labview中,是否可以使用中斷方式讀取數(shù)據(jù)。我使用的是CH372芯片,網(wǎng)頁(yè)上提供的lv例子中中斷調(diào)用總是不正常。


labusb 你好: 我也是一個(gè)初次使用者,很想和你學(xué)習(xí)一下,你是怎樣成功測(cè)試CH372經(jīng)驗(yàn)的,可以幫助一下嗎. 聯(lián)系方式:QQ群號(hào):65495167


unsigned char readch372data(void) { unsigned char data; ch372_delay_us();ch372_delay_us(); DDRA=0x00; CH372_A0_L; CH372_CS_L; CH372_RD_L; CH372_WR_H CH372_CS_L; data=PORTA; CH372_RD_H;CH372_CS_H;CH372_A0_H; ch372_delay_us();ch372_delay_us(); return (data); }

中間的data=PORTA是不是應(yīng)該換成data = PINA


對(duì)于像AVR一類雙向端口的單片機(jī): 讀端口應(yīng)該是:data = PINA


unsigned char readch372data(void) { unsigned char data; ch372_delay_us();ch372_delay_us(); DDRA=0x00; CH372_A0_L; CH372_WR_H CH372_CS_L; CH372_RD_L; CH372_CS_L; data=PINA; CH372_RD_H;CH372_CS_H;CH372_A0_L; ch372_delay_us();ch372_delay_us(); return (data); }


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

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