你好,关于ch375端点疑问

你好,我看芯片介绍有这么一段话, 主机端点包括输出端点和输入端点,输出和输入缓冲区各是64B,主机端点与端点2合用同一组缓冲区,主机端点的输出缓冲区就是端点2的上传缓冲区,主机端点的输入缓冲区就是端点2的下传缓冲区。 其中,CH375的端点0、端点1、端点2只用于USB设备方式,在USB主机方式下只需要用到主机端点。

想问的是,所谓的主机端点是怎么理解呢?端点号是多少呢?我在芯片作host实现打印机功能的代码里面看到这样一段: c=p_cfg_descr->endp_descr[0].bEndpointAddress; /* 第一个端点的地址 */ if ( c&0x80 ) endp_in_addr=c&0x0f; /* IN端点的地址 */ else { /* OUT端点 */ endp_out_addr=c&0x0f; endp_out_size=p_cfg_descr->endp_descr[0].wMaxPacketSize; /* 数据接收端点的最大包长度 */ } if ( p_cfg_descr->itf_descr.bNumEndpoints>=2 ) { /* 接口有两个以上的端点 */ if ( p_cfg_descr->endp_descr[1].bDescriptorType==5 ) { /* 端点描述符 */ c=p_cfg_descr->endp_descr[1].bEndpointAddress; /* 第二个端点的地址 */ if ( c&0x80 ) endp_in_addr=c&0x0f; /* IN端点 */ else { /* OUT端点 */ endp_out_addr=c&0x0f; endp_out_size=p_cfg_descr->endp_descr[1].wMaxPacketSize; } } } 这里的第一个端点,第二个端点又怎么理解呢?跟端点1,端点2有什么关系吗?谢谢!

USB主机只有输入和输出两个端点,设备可以有多个端点,同一时刻主机只能和设备的一个端点进行通讯,设备有多个端点时需要去逐个分析也就是端点1、端点2。CH375芯片的主机端点和做设备时的端点2共用一个缓冲区。


嗯 ,有点明白,再问下,usb主机的输入输出端点的端点号是多少呢?


另外能不能说下为什么程序里面有的printf的东西不能够在超级终端中打印出来呢,而有的可以呢,很是疑惑对这个问题呢,谢谢。。


端点号是相对于设备来说的 至于超级终端打印问题我们这边没使用过,你比较一下能打印和不能打印的语句的区别,是不是都要以"\n"结尾?


请问你们是用什么来调试呢?


另外,加了"\n"也没有用呢


我们这边是用串口打印输出来监控的


只有登录才能回复,可以选择微信账号登录