完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
最近使用f4cube V1.5开发VCP驱动,按照F429-Discovery板子的配置选择OTG-HS接口作为Device设备来用,选择CDC协议。修改完APP_RX_DATA_SIZE和APP_TX_DATA_SIZE为2048,添加LineCoding代码。可是连接到计算机上,装完驱动(VCP V1.4)之后显示错误代码10的故障。计算机业换过win764/32位的。所以估计是代码的错误,使用USB VIEW观测之后,效果如下:
Device Descriptor: bcdUSB: 0x0200 bDeviceClass: 0x00 bDeviceSubClass: 0x00 bDeviceProtocol: 0x00 bMaxPacketSize0: 0x40 (64) idVendor: 0x0483 (STMicroelectronics) idProduct: 0x5740 bcdDevice: 0x0200 iManufacturer: 0x01 0x0409: "STMicroelectronics" iProduct: 0x02 0x0409: "STM32 Virtual ComPort" iSerialNumber: 0x03 0x0409: "000000002B1A" bNumConfigurations: 0x01 ConnectionStatus: DeviceConnected Current Config Value: 0x00 Device Bus Speed: Full Device Address: 0x03 Open Pipes: 0 Configuration Descriptor: wTotalLength: 0x0043 bNumInterfaces: 0x02 bConfigurationValue: 0x01 iConfiguration: 0x00 bmAttributes: 0xC0 (Bus Powered Self Powered ) MaxPower: 0x32 (100 Ma) Interface Descriptor: bInterfaceNumber: 0x00 bAlternateSetting: 0x00 bNumEndpoints: 0x01 bInterfaceClass: 0x02 bInterfaceSubClass: 0x02 bInterfaceProtocol: 0x01 iInterface: 0x00 Unknown Descriptor: bDescriptorType: 0x24 bLength: 0x05 05 24 00 10 01 Unknown Descriptor: bDescriptorType: 0x24 bLength: 0x05 05 24 01 00 01 Unknown Descriptor: bDescriptorType: 0x24 bLength: 0x04 04 24 02 02 Unknown Descriptor: bDescriptorType: 0x24 bLength: 0x05 05 24 06 00 01 Endpoint Descriptor: bEndpointAddress: 0x82 IN Transfer Type: Interrupt wMaxPacketSize: 0x0008 (8) bInterval: 0x10 Interface Descriptor: bInterfaceNumber: 0x01 bAlternateSetting: 0x00 bNumEndpoints: 0x02 bInterfaceClass: 0x0A bInterfaceSubClass: 0x00 bInterfaceProtocol: 0x00 iInterface: 0x00 Endpoint Descriptor: bEndpointAddress: 0x01 OUT Transfer Type: Bulk wMaxPacketSize: 0x0040 (64) bInterval: 0x00 Endpoint Descriptor: bEndpointAddress: 0x81 IN Transfer Type: Bulk wMaxPacketSize: 0x0040 (64) bInterval: 0x00 观察发现枚举应该没有问题,可是端点没有打开。不知何故? |
|
相关推荐
24个回答
|
|
|
|
|
|
同感啊,所以我一直坚持寄存器,HAL只做参考
|
|
|
|
亲爱的娜娜 发表于 2019-3-4 16:29 从ST下的标准库是没有USB的,如果是F2/F4你还需要下载stm32_f105-07_f2_f4_u***-host-device_lib这个库,如果是F103就要下另一个USB库。但是这只是刚开始的时候配置费点劲,以后也就好了。 |
|
|
|
问题终于在上周五解决了,先说怎么解决的。
在u***d_conf.h中有两个宏:USBD_MAX_NUM_INTERFACES和USBD_MAX_NUM_CONFIGURATION。我将其值设置为2,问题顺利解决了。 这两个宏对应于CubeMX软件USB_DEVICE Configuration 配置卡里面Basic Parameters的头两项。 再说一下为什么要改这两项。在我用USB VIEW观察的时候我看到了两个接口。所以USBD_MAX_NUM_INTERFACES改为2是合理的。CDC类的确有两个Interface:第一个包含通讯端点,第二个包含两个数据端点。 但是为什么要将USBD_MAX_NUM_CONFIGURATION设置为2,我就不清楚,我只清楚的是:在u***d_ctlreq.c的函数USBD_SetConfig内部有if (cfgidx > USBD_MAX_NUM_CONFIGURATION ) 这句话。而cfgidx的含义是什么呐?我在追踪了一会发现这个值,可能是由setup阶段有关。 那么有谁能告诉我USBD_MAX_NUM_CONFIGURATION是什么意思。 |
|
|
|
naiztycheng 发表于 2019-3-4 18:34 上面的解决方案有问题,稍后我会在随后的帖子中详细说明中间的过程。 上面有点误导的意思。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
OV7670摄像头使用串口发送数据到另一个板子上的lcd,出现花屏
1378 浏览 1 评论
700 浏览 0 评论
680 浏览 0 评论
STM32CUBEMX(12)--IIC,12864OLED(0.96寸)移植
719 浏览 0 评论
STM32CUBEMX(5)--自定义红外NEC解码,定时器TIM捕获方式
653 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-29 06:32 , Processed in 0.888874 second(s), Total 80, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号