最近在逐步的做stm32通过CH375连接打印机,在枚举过程中,通过CH375_Rd_Desc(1)能读到正确的设备描述符,但是当发送CH375_Rd_Desc(2)时,获取的代码与设备描述符的是一样的,这是什么原因造成的呢?
如果你是使用JTAG或者其他单步调试的方式,建议改用串口打印的方式调试,单步调试USB的时候可能会出现异常。
调试用的是ST-link ,并没有进行单步调试,只是在watch某些全局变量,发现的这个问题,结果就是端点没法设置
调试用的是ST-link ,并没有进行单步调试,只是在watch某些全局变量,发现的这个问题,结果就是端点没法设置
这里可以确定的是,设备描述符获取的是正确的,但是不管我发送的get_descr是1还是2,返回的都是设备描述符
可能是操作顺序上造成的,你这样,在第一获取设备描述符之前先复位CH375,然后正常设置速度、配置主机等操作,获取设备描述符,然后设置设备地址,然后在获取设备描述符。
操作顺序大体上是相同的,首先复位CH375指的是上电复位?还有我没有设置速度,这个会有影响么?
是不是你获取设备描述符是正确的,获取配置描述符不正确,所以存在缓冲区里的还是设备描述符。注意所以当使用获取描述符命令描述符的长度超过64字节时,CH375将返回操作状态USB_INT_BUF_OVER,这种情况下必须自己发命令来实现描述符的获取
CH375提供了很多例程,为什么STM32的例程我怎么也找不到?沁恒能不能提供一套STM32对应的CH375的例程呢?
我们提供的都是51单片机的例子,STM32只需要修改一下读写接口就可以了,流程上是一样的。
是不是你获取设备描述符是正确的,获取配置描述符不正确,所以存在缓冲区里的还是设备描述符。注意所以当使用获取描述符命令描述符的长度超过64字节时,CH375将返回操作状态USB_INT_BUF_OVER,这种情况下必须自己发命令来实现描述符的获取
我也遇到一个类似的问题,读取设备描述符的时候正常为0x12字节,但是读取配置描述符的时候返回了USB_INT_BUF_OVER,遇到这种情况,怎么办呢?
此时内部缓冲区溢出,一般配置描述符个数超过64字节,不可以再使用GET_DESCR。可以使用ISSUE_TKN_X或者ISSUE_TOKEN收发包。详细使用可以在右上角搜索框搜“luoye”第一个帖子,里面找到375操作键鼠的例子。