374枚舉不成功!

1.首先,我在串口的開(kāi)發(fā)板上修改后調(diào)試貴公司的374的Device的C語(yǔ)言例子程序,枚舉可以成功,最后可在設(shè)備管理器中發(fā)現(xiàn)“外部接口-375/372” 2.參考例子,我用匯編實(shí)現(xiàn),有時(shí)就只產(chǎn)生復(fù)位和掛起的中斷,而沒(méi)有傳輸中斷,初始化都跟貴公司一樣,匯編中我是這樣寫寄存器的: MOV DPTR,#CH374_IDX_PORT MOV A,#USB_REG MOV @DPTR,A

MOV DPTR,#CH374_DAT_PORT MOV A,#DATA MOV @DPTR,A 而C語(yǔ)言中在執(zhí)行這些指令前后會(huì)有其他一些指令 是不是需要延時(shí)呢,可是在我加了延時(shí)后也不會(huì)有什么效果

是有些特殊寄存器需要加延時(shí)嗎?

謝謝!


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

374不需要加延時(shí)的,匯編代碼應(yīng)該是這樣寫的: MOV DPTR,#CH374_IDX_PORT MOV A,#USB_REG MOVX @DPTR,A

MOV DPTR,#CH374_DAT_PORT MOV A,#DATA MOVX @DPTR,A


下面是將HAL_PARA.C中子程序改成匯編的程序,你可以參考:

;向索引端口寫入索引地址 ( 索引地址在R5中) Write374Index: MOV DPTR,#CH374_IDX_PORT MOV A,R5 MOVX @DPTR,A RET

;向數(shù)據(jù)端口寫入數(shù)據(jù),索引地址自動(dòng)加1 ( 數(shù)據(jù)在R5中) Write374Data : MOV DPTR,#CH374_DAT_PORT MOV A,R5 MOVX @DPTR,A RET

;從數(shù)據(jù)端口讀出數(shù)據(jù),索引地址自動(dòng)加1( 數(shù)據(jù)在R5中) Read374Data: MOV DPTR,#CH374_DAT_PORT MOVX A,@DPTR MOV R5,A RET

;從指定寄存器讀取數(shù)據(jù)(寄存器地址在R5中,返回?cái)?shù)據(jù)在R6中) Read374Byte: LCALL Write374Index LCALL Read374Data MOV A,R5 MOV R6,A RET

;向指定寄存器寫入數(shù)據(jù)(寄存器地址在R5中,要寫入數(shù)據(jù)在R6中) Write374Byte: LCALL Write374Index MOV A,R6 MOV R5,A LCALL Write374Data RET

;從指定起始地址讀出數(shù)據(jù)塊(起始地址在R5中,讀取長(zhǎng)度在R7中, 讀出的數(shù)據(jù)存儲(chǔ)在R0指向的緩沖區(qū)中) Read374Block: LCALL Write374Index Read_next: LCALL Read374Data MOV A,R5 ; LCALL PRINTF MOV @R0,A INC R0 DJNZ R7,Read_next RET

;向指定起始地址寫入數(shù)據(jù)塊(起始地址在R5中,寫入長(zhǎng)度在R7中, 寫入的數(shù)據(jù)存儲(chǔ)在R0指向的緩沖區(qū)中) Write374Block: LCALL Write374Index Write_next: MOV A, @R0 MOV R5,A LCALL Write374Data INC R0 DJNZ R7,Write_next RET


謝謝! 我在程序中并沒(méi)有寫錯(cuò)MOVX 我的單片機(jī)很快的速度,也不需要延時(shí)嗎? 我還想知道,總是復(fù)位和掛起是怎么回事呢?


只需要滿足讀寫低電平脈沖在40NS,讀選通或?qū)戇x通脈沖的間隔寬度在120NS以上的話,那么就可以實(shí)現(xiàn)和374的通信,不需要加任何的延時(shí)。對(duì)于出現(xiàn)總線復(fù)位是可能計(jì)算機(jī)檢測(cè)到有設(shè)備插上來(lái),之后就會(huì)給總線復(fù)位,然后在檢測(cè)設(shè)備連接,在發(fā)送獲取設(shè)備描述符的控制傳輸,至于出現(xiàn)總線掛起是在計(jì)算機(jī)發(fā)送幾次獲取設(shè)備描述符的控制傳輸之后,設(shè)備沒(méi)有響應(yīng),那么計(jì)算機(jī)就會(huì)停止發(fā)送SOF包,這個(gè)時(shí)候374芯片就會(huì)檢測(cè)到總線的掛起


120NS應(yīng)該很小了,單片機(jī)應(yīng)該不會(huì)有那么快的速度,我測(cè)試過(guò)了 將貴公司的讀寫的基本函數(shù)用嵌入?yún)R編實(shí)現(xiàn),也能成功枚舉。應(yīng)該不是時(shí)間的問(wèn)題了。 這是我的總線復(fù)位處理代碼,完全是按貴公司CH374EVT.ZIP:\PUB\MCS51\LIB6\EXAM0例子程序由C改成的匯編: Reset374:

MOV DPTR,#CH374_CMD_PORT_ADDR ;寫設(shè)備地址 MOV A,#REG_USB_ADDR MOVX @DPTR,A MOV DPTR,#CH374_DAT_PORT_ADDR MOV A,#0x00 MOVX @DPTR,A

MOV DPTR,#CH374_CMD_PORT_ADDR ;寫端點(diǎn)0 MOV A,#REG_USB_ENDP0 MOVX @DPTR,A MOV DPTR,#CH374_DAT_PORT_ADDR MOV A,#0x0E MOVX @DPTR,A

MOV DPTR,#CH374_CMD_PORT_ADDR ;寫端點(diǎn)1 MOV A,#REG_USB_ENDP1 MOVX @DPTR,A MOV DPTR,#CH374_DAT_PORT_ADDR MOV A,#0x0E MOVX @DPTR,A

MOV DPTR,#CH374_CMD_PORT_ADDR ;寫端點(diǎn)2 MOV A,#REG_USB_ENDP2 MOVX @DPTR,A MOV DPTR,#CH374_DAT_PORT_ADDR MOV A,#0x02 MOVX @DPTR,A

MOV DPTR,#CH374_CMD_PORT_ADDR ;清中斷 MOV A,#REG_INTER_FLAG MOVX @DPTR,A MOV DPTR,#CH374_DAT_PORT_ADDR MOV A,#0x12 MOVX @DPTR,A

CLR EX5 JMP _Wait_i_ 不知是否有誤? 謝謝!


這是初始化和查詢部分,幫忙看下,謝謝了! 問(wèn)題還是:只是復(fù)位和掛起,沒(méi)有傳輸。 或者是下載調(diào)試幾次,才有一次傳輸! CH374_Init: SETB EA CLR EX5 CLR PX5 SETB CH374_INT_WIRE ;清引腳 MOV UsbConfig,#0X00 ;USB配置標(biāo)志

MOV DPTR,#CH374_CMD_PORT_ADDR ;啟動(dòng)USB設(shè)備 MOV A,#REG_USB_SETUP MOVX @DPTR,A MOV DPTR,#CH374_DAT_PORT_ADDR MOV A,#0x00 MOVX @DPTR,A

MOV DPTR,#CH374_CMD_PORT_ADDR MOV A,#REG_USB_ADDR MOVX @DPTR,A MOV DPTR,#CH374_DAT_PORT_ADDR MOV A,#0x00 MOVX @DPTR,A

MOV DPTR,#CH374_CMD_PORT_ADDR MOV A,#REG_USB_ENDP0 MOVX @DPTR,A MOV DPTR,#CH374_DAT_PORT_ADDR MOV A,#0x0E MOVX @DPTR,A

MOV DPTR,#CH374_CMD_PORT_ADDR MOV A,#REG_USB_ENDP1 MOVX @DPTR,A MOV DPTR,#CH374_DAT_PORT_ADDR MOV A,#0x0E MOVX @DPTR,A

MOV DPTR,#CH374_CMD_PORT_ADDR MOV A,#REG_USB_ENDP2 MOVX @DPTR,A MOV DPTR,#CH374_DAT_PORT_ADDR MOV A,#0x02 MOVX @DPTR,A

MOV DPTR,#CH374_CMD_PORT_ADDR MOV A,#REG_INTER_FLAG MOVX @DPTR,A MOV DPTR,#CH374_DAT_PORT_ADDR MOV A,#0x1F MOVX @DPTR,A

MOV DPTR,#CH374_CMD_PORT_ADDR MOV A,#REG_INTER_EN MOVX @DPTR,A MOV DPTR,#CH374_DAT_PORT_ADDR MOV A,#0x07 MOVX @DPTR,A

MOV DPTR,#CH374_CMD_PORT_ADDR MOV A,#REG_SYS_CTRL ;對(duì)于CH374T或者UEN引腳懸空的CH374S必須BIT_CTRL_OE_POLAR為1 MOVX @DPTR,A MOV DPTR,#CH374_DAT_PORT_ADDR MOV A,#0x00 MOVX @DPTR,A

MOV DPTR,#CH374_CMD_PORT_ADDR MOV A,#REG_USB_SETUP MOVX @DPTR,A MOV DPTR,#CH374_DAT_PORT_ADDR ;啟動(dòng)USB設(shè)備 MOV A,#0x03 MOVX @DPTR,A

SETB EA

;查詢 ;======================================================= _Wait_i_: ;讀寫入口 NOP JB CH374_INT_WIRE,_Wait_i_

;====================處理USB數(shù)據(jù)包====================== WD_Sub:

MOV DPTR,#CH374_CMD_PORT_ADDR ;由中斷標(biāo)志寄存器得到中斷類型 MOV A,#REG_INTER_FLAG MOVX @DPTR,A MOV DPTR,#CH374_DAT_PORT_ADDR MOVX A,@DPTR JB ACC^1,JmpReset374 ;復(fù)位

JB ACC^0,JmpTranse374 ;傳輸

JB ACC^2,JmpSuspend374 ;掛起

JB ACC^3,JmpWakeUp374 ;喚醒


現(xiàn)在已經(jīng)調(diào)到設(shè)置地址了,PC機(jī)向374發(fā)包,設(shè)置地址后,又開(kāi)始讀取18個(gè)字節(jié)的描述符,但是 讀取這18個(gè)字節(jié)之后,就只產(chǎn)生了一次掛起中斷,就沒(méi)有繼續(xù)讀取配置符了,請(qǐng)問(wèn)問(wèn)題出在哪里?


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

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