完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
STM32f103c8t6的代码移植到ch32f103c8t6,stm32端点2是正常工作的
ch32尝试了,端点2和端点3读出来的数据不对 ch32先使能了USB_HP_CAN1_TX_IRQ,要不然触发不了USB_HP_CAN1_TX_IRQ USB 高优先级中断(通道 19):仅能由同步和双缓冲批量传输的正确传输事件触发,目的是保证最 大的传输速率 触发中断后进入,EP3_OUT_CALLBACK g_blaster_rx_req = TRUE 开始缓冲区拷贝数据 到s_recv_buffer这个64字节数组, 拷贝出来的数据前几次是和stm32一样,后面就和stm32拷贝的数据出来的数据不一样了 下面这里是配置描述符,和设置端点的操作 /* USB配置描述符 *//* All Descriptors (Configuration, Interface, Endpoint, Class, Vendor */const uint8_t Blaster_ConfigDescriptor[BLASTER_SIZ_CONFIG_DESC] = { /* Configuration Descriptor */ /* 00 */ 0x09, /* bLength: Configuration Descriptor size */ USB_CONFIGURATION_DESCRIPTOR_TYPE, /* bDescriptorType: Configuration */ BLASTER_SIZ_CONFIG_DESC, /* wTotalLength: Bytes returned */ 0x00, 0x01, /* bNumInterfaces: 1 interface */ 0x01, /* bConfigurationValue: Configuration value */ 0x00, /* iConfiguration: Index of string descriptor describing the configuration*/ 0x80, /* bmAttributes: Bus powered(bit6=0) */ 0xE1, /* MaxPower 450mA(225*2) */ /* Interface Descriptor */ /* 09 */ 0x09, /* bLength: Interface Descriptor size */ USB_INTERFACE_DESCRIPTOR_TYPE,/* bDescriptorType: Interface descriptor type */ 0x00, /* bInterfaceNumber: Number of Interface */ 0x00, /* bAlternateSetting: Alternate setting */ EP_NUM - 1, /* bNumEndpoints */ 0xFF, /* bInterfaceClass: NA */ 0xFF, /* bInterfaceSubClass : NA */ 0xFF, /* nInterfaceProtocol : NA */ 0, /* iInterface: Index of string descriptor */ /* Endpoint Descriptor */ /* 18 */ 0x07, /* bLength: Endpoint Descriptor size */ USB_ENDPOINT_DESCRIPTOR_TYPE, /* bDescriptorType: Endpoint descriptor */ EP1_IN, /* bEndpointAddress: Endpoint 1 IN */ 0x02, /* bmAttributes: Bulk endpoint */ ENDP1_TXSIZE, /* wMaxPacketSize: 64 Bytes max */ 0x00, 0x01, /* bInterval: Polling Interval (1 ms) */ /* 25 */ 0x07, /* bLength: Endpoint Descriptor size */ USB_ENDPOINT_DESCRIPTOR_TYPE, /* bDescriptorType: Endpoint descriptor */ EP3_OUT, /*bEndpointAddress:端点2输出这里修改为EP3*/ 0x02, /*bmAttributes:批量端点*/ ENDP2_RXSIZE, /*wMaxPacketSize:最大64字节*/ 0x00, 0x01, /*bInterval:轮询间隔(1毫秒)*/ /* 32 */};ENDP3端点设置操作 端点缓冲区设置,这里我不确定有没有设置正确 ENDP0,ENDP1是正常的能识别驱动 各位大佬帮忙看看到底啥问题啊 |
|
相关推荐
2个回答
|
|
stm32f103c8t6的代码移植到ch32f103c8t6,stm32端点2是正常工作的
ch32尝试了,端点2和端点3读出来的数据不对 ch32先使能了USB_HP_CAN1_TX_IRQ,要不然触发不了USB_HP_CAN1_TX_IRQ USB 高优先级中断(通道 19):仅能由同步和双缓冲批量传输的正确传输事件触发,目的是保证最 大的传输速率 触发中断后进入,EP3_OUT_CALLBACK g_blaster_rx_req = TRUE 开始缓冲区拷贝数据 到s_recv_buffer这个64字节数组, 拷贝出来的数据前几次是和stm32一样,后面就和stm32拷贝的数据出来的数据不一样了 下面这里是配置描述符,和设置端点的操作 /* USB配置描述符 *//* All Descriptors (Configuration, Interface, Endpoint, Class, Vendor */const uint8_t Blaster_ConfigDescriptor[BLASTER_SIZ_CONFIG_DESC] = { /* Configuration Descriptor */ /* 00 */ 0x09, /* bLength: Configuration Descriptor size */ USB_CONFIGURATION_DESCRIPTOR_TYPE, /* bDescriptorType: Configuration */ BLASTER_SIZ_CONFIG_DESC, /* wTotalLength: Bytes returned */ 0x00, 0x01, /* bNumInterfaces: 1 interface */ 0x01, /* bConfigurationValue: Configuration value */ 0x00, /* iConfiguration: Index of string descriptor describing the configuration*/ 0x80, /* bmAttributes: Bus powered(bit6=0) */ 0xE1, /* MaxPower 450mA(225*2) */ /* Interface Descriptor */ /* 09 */ 0x09, /* bLength: Interface Descriptor size */ USB_INTERFACE_DESCRIPTOR_TYPE,/* bDescriptorType: Interface descriptor type */ 0x00, /* bInterfaceNumber: Number of Interface */ 0x00, /* bAlternateSetting: Alternate setting */ EP_NUM - 1, /* bNumEndpoints */ 0xFF, /* bInterfaceClass: NA */ 0xFF, /* bInterfaceSubClass : NA */ 0xFF, /* nInterfaceProtocol : NA */ 0, /* iInterface: Index of string descriptor */ /* Endpoint Descriptor */ /* 18 */ 0x07, /* bLength: Endpoint Descriptor size */ USB_ENDPOINT_DESCRIPTOR_TYPE, /* bDescriptorType: Endpoint descriptor */ EP1_IN, /* bEndpointAddress: Endpoint 1 IN */ 0x02, /* bmAttributes: Bulk endpoint */ ENDP1_TXSIZE, /* wMaxPacketSize: 64 Bytes max */ 0x00, 0x01, /* bInterval: Polling Interval (1 ms) */ /* 25 */ 0x07, /* bLength: Endpoint Descriptor size */ USB_ENDPOINT_DESCRIPTOR_TYPE, /* bDescriptorType: Endpoint descriptor */ EP3_OUT, /*bEndpointAddress:端点2输出这里修改为EP3*/ 0x02, /*bmAttributes:批量端点*/ ENDP2_RXSIZE, /*wMaxPacketSize:最大64字节*/ 0x00, 0x01, /*bInterval:轮询间隔(1毫秒)*/ /* 32 */};ENDP3端点设置操作 端点缓冲区设置,这里我不确定有没有设置正确 ENDP0,ENDP1是正常的能识别驱动 各位大佬帮忙看看到底啥问题啊 |
|
|
|
是缓冲区地址吗,还是就是端点地址
|
|
|
|
只有小组成员才能发言,加入小组>>
480 浏览 1 评论
CH579M+RT-Thread,RTC从Sleep模式唤醒失败是什么原因?
2876 浏览 2 评论
2363 浏览 1 评论
821浏览 2评论
CH569通过HSPI实现USB3.0和FPGA高速双向通讯
653浏览 1评论
502浏览 1评论
CH32F103C8T6使用当前官网上的CDC例程会出现设备描述符请求失败
367浏览 1评论
645浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-28 04:01 , Processed in 1.117756 second(s), Total 81, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号