从PC机端发送数据到CH372时,全部都正确,
可是PC端要求接收CH372的数据时,接收不到数据,线程一直在等待。
我的单片机程序是这样的。 麻烦WCH的工程师们帮看一下好吗?谢谢!
;*******向CH372写命令操作******************** ORDER: MOV P2,A SETB P0.3 CLR P0.5 MOV P2,A NOP SETB P0.5 mov p2,#0ffh RET ;----------------------------------------------------
;*******向CH372写数据操作************************** WRITE: MOV P2,A CLR P0.3 CLR P0.5 MOV P2,A NOP SETB P0.5 mov p2,#0ffh RET ;--------------------------------------------------
;*******向CH372读数据操作************************* READ: MOV P2,#0FFH CLR P0.3 CLR P0.4 MOV A,P2 NOP SETB P0.4 mov p2,#0ffh RET ;------------- ;*******端点2 批量数据上传子程序******************** BULKUP: MOV A,#CMD_WR_USB_DATA7 ;写入上传命令 ACALL ORDER nop nop nop MOV A,LEN ;先写入数据长度 mov r2,a jz int_unlk ACALL WRITE MOV R1,#BUFFER BULKSEND:MOV A,@R1 ;发送数据 ACALL WRITE INC R1 DJNZ r2,BULKSEND INT_UNLK:MOV A,#CMD_UNLOCK_USB ;发送完毕,解开缓冲区锁 ACALL ORDER nop RET ;-----------------------------------------------------------
;*******端点2 批量数据下传子程序************* BULKDOWN:MOV A,#CMD_RD_USB_DATA ;写入下传数据命令 ACALL ORDER NOP NOP ACALL READ ;读取数据长度 MOV R2,A JZ OUTDOWN MOV LEN,A MOV R1,#BUFFER BULKDS: ACALL READ ;接收下传数据 MOV @R1,A INC R1 DJNZ R2,BULKDS mov a,r1 clr c subb a,#05h mov lenend,a OUTDOWN:NOP RET