當(dāng)收到的下傳數(shù)據(jù)長度為零時,為何要將收到的信息上傳回去? 是協(xié)議要求嗎? 以下程序是外置固件的例程,下一段為回傳程序。
CH375_EP2_DOWN: MOV A,#CMD_RD_USB_DATA ;將下傳的數(shù)據(jù)讀出,釋放端點(diǎn) CALL WR_CMD_TO_375 ;讀命令發(fā)向CH375 MOVX A,@DPTR ;取出后續(xù)數(shù)據(jù)長度 MOV R4,A ;保存長度 JZ CH375_EP2_UP ;長度為0返回 MOV R5,A MOV R0,#CMD_BUFFER ;緩沖區(qū)首地址送R0 CH375_EP2_LOOP: MOVX A,@DPTR MOV @R0,A INC R0 DJNZ R5,CH375_EP2_LOOP ; 演示回傳 CH375_EP2_UP: MOV A,#CMD_WR_USB_DATA7 ;演示回傳數(shù)據(jù) CALL WR_CMD_TO_375 MOV A,R4 MOVX @DPTR,A JZ CH375_EP2_UP_RET ;長度為0 MOV R0,#CMD_BUFFER ;緩沖區(qū)首地址送R0 CH375_EP2_UP_LOOP:MOV A,@R0 MOVX @DPTR,A INC R0 DJNZ R4,CH375_EP2_UP_LOOP CH375_EP2_UP_RET:RET