今天跑一下CH341例程,CH341就是USB转串,直接通过USB芯片收发串口数据。例程如:
1505178164879354.rar
(48.74 KB, 下载次数: 11)
我看了下程序,除了三个端点一个控制,一个输入一个输出之外,主要在下边这一段:
- case UIS_TOKEN_IN | 0: //endpoint0 IN
- switch(SetupReq)
- {
- case USB_GET_DESCRIPTOR:
- len = SetupLen >= THIS_ENDP0_SIZE ? THIS_ENDP0_SIZE : SetupLen; //±¾′Î′«êä3¤¶è
- memcpy( Ep0Buffer, pDescr, len ); //¼óÔØéÏ′«êy¾Y
- SetupLen -= len;
- pDescr += len;
- UEP0_T_LEN = len;
- UEP0_CTRL ^= bUEP_T_TOG; //í¬2½±ê־λ·-×a
- break;
- case USB_SET_ADDRESS:
- USB_DEV_AD = USB_DEV_AD & bUDA_GP_BIT | SetupLen;
- UEP0_CTRL = UEP_R_RES_ACK | UEP_T_RES_NAK;
- break;
- default:
- UEP0_T_LEN = 0; //×′쬽׶Îíê3éÖD¶Ï»òÕßêÇÇ¿ÖÆéÏ′«03¤¶èêy¾Y°ü½áêø¿ØÖÆ′«êä
- UEP0_CTRL = UEP_R_RES_ACK | UEP_T_RES_NAK;
- break;
- }
- break;
复制代码
运行截图如下:
这是把开发板插上,识别出的CH341A
以下是我发0X12,收也是0x12,发几次后又发8个字节,也是收到
看来CH554模仿CH341很成功。
此内容由EEWORLD论坛网友ddllxxrr原创,如需转载或用于商业用途需征得作者同意并注明出处