久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6607|回復: 1
打印 上一主題 下一主題
收起左側

經測試利用STM32實現的USB Dual RS485設備可直接使用在64位的win10預覽版中,自動...

[復制鏈接]
跳轉到指定樓層
樓主
ID:75926 發表于 2015-4-4 01:46 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式











設備驅動經過兩次自動搜索和安裝,廉價的STM32F1芯片實現了雙路的USB轉RS485通信硬件橋,驅動是微軟自家的,
其中一路信號在大蝦開發板上通信測試通過,大蝦開發板帶有CH341電路,這個芯片的驅動也是自動安裝的。



作為一個符合微軟標準的USB復合設備(USB composite device),本人設計的這款USB智能通訊產品,能被xpsp3, win7, win10所支持。
建議使用比較新的系統,在linux系統下,測試只能支持一個。

USB串行設備的配置描述常量數組如下所示,該描述不涉及代碼部分,需要了解USB通訊協議。雖說是落后的USB1.1,可以滿足常規
工作的需求。國內的專用芯片只有USB1.1全速的,USB2.0高速或USB3.0國內沒有芯片可用,意法半導體的STM32F1或STM32L1可
替代國內專用芯片的大部分功能,關鍵是還能實現智能通訊,專用芯片不能編程,功能太單一。
  
const uint8_t Virtual_Com_Port_ConfigDescriptor[] =
{
/*Configuation Descriptor*/
0x09,   /* bLength: Configuation Descriptor size */
USB_CONFIGURATION_DESCRIPTOR_TYPE,      /* bDescriptorType: Configuration */
VIRTUAL_COM_PORT_SIZ_CONFIG_DESC,       /* wTotalLength:no of returned bytes */
0x00,
0x04,   /* bNumInterfaces: 4 interface */
0x01,   /* bConfigurationValue: Configuration value */
0x00,   /* iConfiguration: Index of string descriptor describing the configuration */
0xC0,   /* bmAttributes: self powered */
0x32,   /* MaxPower 100 mA */

/*IAD Configuation Descriptor*/
0x08,  /* bLength: Interface Descriptor size */
0x0B,  /* bDescriptorType: IAD */
0x00,  /* bFirstInterface */
0x02,   /* bInterfaceCount */
0x02,  /* bFunctionClass: CDC */
0x02,   /* bFunctionSubClass */
0x01,   /* bFunctionProtocol */
0x02,   /* iFunction */
/*Interface Descriptor*/
0x09,   /* bLength: Interface Descriptor size */
USB_INTERFACE_DESCRIPTOR_TYPE,  /* bDescriptorType: Interface */
/* Interface descriptor type */
0x00,   /* bInterfaceNumber: Number of Interface */
0x00,   /* bAlternateSetting: Alternate setting */
0x01,   /* bNumEndpoints: One endpoints used */
0x02,   /* bInterfaceClass: Communication Interface Class */
0x02,   /* bInterfaceSubClass: Abstract Control Model */
0x01,   /* bInterfaceProtocol: Common AT commands */
0x00,   /* iInterface: */
/*Header Functional Descriptor*/
0x05,   /* bLength: Endpoint Descriptor size */
0x24,   /* bDescriptorType: CS_INTERFACE */
0x00,   /* bDescriptorSubtype: Header Func Desc */
0x10,   /* bcdCDC: spec release number */
0x01,
/*Call Managment Functional Descriptor*/
0x05,   /* bFunctionLength */
0x24,   /* bDescriptorType: CS_INTERFACE */
0x01,   /* bDescriptorSubtype: Call Management Func Desc */
0x00,   /* bmCapabilities: D0+D1 */
0x01,   /* bDataInterface: 1 */
/*ACM Functional Descriptor*/
0x04,   /* bFunctionLength */
0x24,   /* bDescriptorType: CS_INTERFACE */
0x02,   /* bDescriptorSubtype: Abstract Control Management desc */
0x02,   /* bmCapabilities */
/*Union Functional Descriptor*/
0x05,   /* bFunctionLength */
0x24,   /* bDescriptorType: CS_INTERFACE */
0x06,   /* bDescriptorSubtype: Union func desc */
0x00,   /* bMasterInterface: Communication class interface */
0x01,   /* bSlaveInterface0: Data Class Interface */
/*Endpoint 2 Descriptor*/
0x07,   /* bLength: Endpoint Descriptor size */
USB_ENDPOINT_DESCRIPTOR_TYPE,   /* bDescriptorType: Endpoint */
0x82,   /* bEndpointAddress: (IN2) */
0x03,   /* bmAttributes: Interrupt */
VIRTUAL_COM_PORT_INT_SIZE,      /* wMaxPacketSize: */
0x00,
0xFF,   /* bInterval: */
/*Data class interface descriptor*/
0x09,   /* bLength: Endpoint Descriptor size */
USB_INTERFACE_DESCRIPTOR_TYPE,  /* bDescriptorType: */
0x01,   /* bInterfaceNumber: Number of Interface */
0x00,   /* bAlternateSetting: Alternate setting */
0x02,   /* bNumEndpoints: Two endpoints used */
0x0A,   /* bInterfaceClass: CDC */
0x00,   /* bInterfaceSubClass: */
0x00,   /* bInterfaceProtocol: */
0x00,   /* iInterface: */
/*Endpoint 3 Descriptor*/
0x07,   /* bLength: Endpoint Descriptor size */
USB_ENDPOINT_DESCRIPTOR_TYPE,   /* bDescriptorType: Endpoint */
0x03,   /* bEndpointAddress: (OUT3) */
0x02,   /* bmAttributes: Bulk */
VIRTUAL_COM_PORT_DATA_SIZE,             /* wMaxPacketSize: */
0x00,
0x00,   /* bInterval: ignore for Bulk transfer */
/*Endpoint 1 Descriptor*/
0x07,   /* bLength: Endpoint Descriptor size */
USB_ENDPOINT_DESCRIPTOR_TYPE,   /* bDescriptorType: Endpoint */
0x81,   /* bEndpointAddress: (IN1) */
0x02,   /* bmAttributes: Bulk */
VIRTUAL_COM_PORT_DATA_SIZE,             /* wMaxPacketSize: */
0x00,
0x00,    /* bInterval */

/*IAD Configuation Descriptor*/
0x08,   /* bLength: Interface Descriptor size */
0x0B,   /* bDescriptorType: IAD */
0x02,   /* bFirstInterface */
0x02,   /* bInterfaceCount */
0x02,   /* bFunctionClass: CDC */
0x02,   /* bFunctionSubClass */
0x01,   /* bFunctionProtocol */
0x02,   /* iFunction */
/*Interface Descriptor*/
0x09,   /* bLength: Interface Descriptor size */
USB_INTERFACE_DESCRIPTOR_TYPE,  /* bDescriptorType: Interface */
/* Interface descriptor type */
0x02,   /* bInterfaceNumber: Number of Interface */
0x00,   /* bAlternateSetting: Alternate setting */
0x01,   /* bNumEndpoints: One endpoints used */
0x02,   /* bInterfaceClass: Communication Interface Class */
0x02,   /* bInterfaceSubClass: Abstract Control Model */
0x01,   /* bInterfaceProtocol: Common AT commands */
0x00,   /* iInterface: */
/*Header Functional Descriptor*/
0x05,   /* bLength: Endpoint Descriptor size */
0x24,   /* bDescriptorType: CS_INTERFACE */
0x00,   /* bDescriptorSubtype: Header Func Desc */
0x10,   /* bcdCDC: spec release number */
0x01,
/*Call Managment Functional Descriptor*/
0x05,   /* bFunctionLength */
0x24,   /* bDescriptorType: CS_INTERFACE */
0x01,   /* bDescriptorSubtype: Call Management Func Desc */
0x00,   /* bmCapabilities: D0+D1 */
0x03,   /* !! bDataInterface: */
/*ACM Functional Descriptor*/
0x04,   /* bFunctionLength */
0x24,   /* bDescriptorType: CS_INTERFACE */
0x02,   /* bDescriptorSubtype: Abstract Control Management desc */
0x02,   /* bmCapabilities */
/*Union Functional Descriptor*/
0x05,   /* bFunctionLength */
0x24,   /* bDescriptorType: CS_INTERFACE */
0x06,   /* bDescriptorSubtype: Union func desc */
0x02,   /* !! bMasterInterface: Communication class interface */
0x03,   /* !! bSlaveInterface0: Data Class Interface */
/*Endpoint 2 Descriptor*/
0x07,   /* bLength: Endpoint Descriptor size */
USB_ENDPOINT_DESCRIPTOR_TYPE,   /* bDescriptorType: Endpoint */
0x85,   /* bEndpointAddress: (IN2) */
0x03,   /* bmAttributes: Interrupt */
VIRTUAL_COM_PORT_INT_SIZE,      /* wMaxPacketSize: */
0x00,
0xFF,   /* bInterval: */

/*Data class interface descriptor*/
0x09,   /* bLength: Endpoint Descriptor size */
USB_INTERFACE_DESCRIPTOR_TYPE,  /* bDescriptorType: */
0x03,   /* bInterfaceNumber: Number of Interface */
0x00,   /* bAlternateSetting: Alternate setting */
0x02,   /* bNumEndpoints: Two endpoints used */
0x0A,   /* bInterfaceClass: CDC */
0x00,   /* bInterfaceSubClass: */
0x00,   /* bInterfaceProtocol: */
0x00,   /* iInterface: */
/*Endpoint 3 Descriptor*/
0x07,   /* bLength: Endpoint Descriptor size */
USB_ENDPOINT_DESCRIPTOR_TYPE,   /* bDescriptorType: Endpoint */
0x06,   /* bEndpointAddress: (OUT3) */
0x02,   /* bmAttributes: Bulk */
VIRTUAL_COM_PORT_DATA_SIZE,             /* wMaxPacketSize: */
0x00,
0x00,   /* bInterval: ignore for Bulk transfer */
/*Endpoint 1 Descriptor*/
0x07,   /* bLength: Endpoint Descriptor size */
USB_ENDPOINT_DESCRIPTOR_TYPE,   /* bDescriptorType: Endpoint */
0x84,   /* bEndpointAddress: (IN1) */
0x02,   /* bmAttributes: Bulk */
VIRTUAL_COM_PORT_DATA_SIZE,             /* wMaxPacketSize: */
0x00,
0x00    /* bInterval */
};





分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:76352 發表于 2015-4-7 18:05 | 只看該作者
有其他的資料嗎〉
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美乱操| 免费大黄视频 | 国产精品一区二区三级 | 免费视频二区 | 午夜影院在线观看 | 全免费a级毛片免费看视频免 | 99精品在线| 在线观看视频福利 | 成人免费观看男女羞羞视频 | 国产一区二区免费电影 | 日韩欧美国产不卡 | 91九色porny首页最多播放 | 一区二区免费高清视频 | 日韩欧美视频免费在线观看 | 欧产日产国产精品v | 成人精品一区二区三区 | 综合网中文字幕 | 精品视频一区二区三区 | 亚洲视频免费在线观看 | 免费一区二区 | www.亚洲精品| 欧美日韩在线视频一区二区 | 国产精品美女久久久久久不卡 | 久久久久久中文字幕 | 亚洲精品日韩精品 | 日韩中文字幕一区二区 | 午夜影院在线观看 | 亚洲中午字幕 | 1区2区视频 | 久久久久久久电影 | 成人久久久 | 久久精品91 | 在线国产小视频 | 久久精品一区二区三区四区 | 精品久久久久久亚洲精品 | 国产精品久久久久久久岛一牛影视 | 欧美日韩成人影院 | av一级一片| 国外成人在线视频网站 | 国产精品美女久久久久aⅴ国产馆 | 国产成人网 |