最近使用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"
bNumConfigura
tions: 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
观察发现枚举应该没有问题,可是端点没有打开。不知何故?
又及:
关于cube和标准库的争辩由来已久。cube的好处是显而易见的:硬件免配置,用户可以将尽力用到应用上,而且熟悉了之后整个代码的结构还是相对简明的。但是标准库的好处也是不用言说的:代码结构非常简洁,不像cube同一个功能要封装几层,标准库很容易追踪到函数的实现。而且用户量庞大。
但是cube在另外一些方面也远远好于标准库,之前的标准库并不附带usb和freertos,当你使用stemwin的时候也要自己将其添加到工具中,但是cube想当一个百宝箱。
此外mbed的库叶挺不错,希望arm借助mbed能够将arm的变成标准化,今年年底应该可以看到mbed os。此外,谷歌新出的Brillo不知道是不是和M系列的CPU能搭上。
科技发展太快了,硬件工程师很累呀。希望能有办法只专注于应用,而非平台。
一周热门 更多>