看了官網(wǎng)的例子,鍵鼠組合的設(shè)備是沒有寫IAD的,那我做HID和AUDIO的組合設(shè)備可以參考官網(wǎng)的例子嗎
可以下載CH563EVT,參考里面的USB例程模擬AUDIO設(shè)備。
我是在CH549的CompositiveHID的例程上 把配置描述符修改為AUDIO設(shè)備的描述符 這樣可行嘛 我修改為AUDIO的配置描述符了之后是提示配置描述符請求失敗
中斷服務(wù)函數(shù)沒有修改? 我只需要枚舉設(shè)備成功??
看一下配置描述符長度有沒有對應(yīng)修改,還有接口個數(shù),每一個接口描述符對應(yīng)的接口索引正不正確。另外你還需要處理AUDIO設(shè)備的類命令描述符。
確認(rèn)描述符沒啥問題了 是不是中斷服務(wù)函數(shù)少寫了什么? 可以發(fā)給你看一下嘛
這是我寫的AUDIO配置描述符
UINT8 CfgDesc[ ] =?
{
//Configuration Descriptor
0x09,//Length
0x02,//Configruation Descriptor Type
0x6D,0x00,//Total Length
0x02,//Number of Interfaces
0x01,//Configuration Value
0x00,//Configuration String Index
0xA0,//Attributes
0x25,//MaxPower
//Standard AudioControl Interface descriptor
0x09,//Length
0x04,//Interface Descriptor Type
0x00,//Interface Number Index
0x00,//Alternate Setting Number
0x00,//Number of Endpoints
0x01,//Interface Class
0x01,//Interface SubClass
0x00,//Interface Protocol
0x00,//Interface String
//Class-Specific AC Interface descriptor
0x09,//Length
0x24,//Audio Descriptor Type(Descriptor Type)
0x01,//Audio Control Header(Descriptor SubType)
0x00,0x01,//bcd audio device class
0x27,0x00,//Total Length
0x01,//In Collection:2 AudioStreaming Interface
0x01,//InterfaceNr 1? id:1 AS interface 1 belongs to this AC interface
//Input terminal Descriptor
0x0C,//length
0x24,//Descriptor Type
0x02,//Descriptor Subtype
0x04,//terminal ID
0x01,0x02,//terminalType:USB Microphone
0x00,//output terminal id which is associated with this input terminal
0x01,//NrChannels
0x01,0x00,//ChannelConfig:Left Front,Right Front
0x00,//ChannelName String
0x00,//Terminal String
//Feature Unit Descriptor
0x09,//Length
0x24,//Descriptor Type
0x06,//Descriptor Subtype
0x05,//UnitID
0x04,//Source ID
0x01,//ControlSize
0x03,0x00,//Controls(0)
0x00,//FU string
//Output terminal Descriptor
0x09,//Length
0x24,//Descriptor Type
0x03,//Descriptor Subtype
0x06,//terminal ID
0x01,0x01,//terminal type
0x00,//AssocTerminal
0x05,//source ID
0x00,//terminal string
//Standard AudioStreaming Interface descriptor
0x09,//Length
0x04,//DescriptorType
0x01,//InterfaceNumber
0x00,//AlternateSetting
0x00,//Endpoints Number
0x01,//Interface Class
0x02,//Interface Subclass
0x00,//Interface Protocol
0x00,//Interface String
//Alternate
0x09,
0x04,
0x01,
0x01,
0x01,
0x01,
0x02,
0x00,
0x00,
//class-specific AS interface descriptor
0x07,//Length
0x24,//Descriptor Type
0x01,//Descriptor Subtype
0x06,//Terminal Link
0x01,//Delay
0x01,0x00,//FormatTag:PCM 0x0001
//class-specific AS format type descriptor
0x0B,//Length
0x24,//Descriptor Type
0x02,//Descriptor Subtype
0x01,//FormatType
0x01,//Number of Channels
0x02,//SubFrameSize
0x10,//BitResolution:16bits per sample
0x01,//SampleFreqType:One sampling frequency
0x80,0x3E,0x00,//16K
//Standard Endpoint
0x09,//Length
0x05,//Descriptor Type
0x82,//EndpointAddress:Input EP2
0x0d,//Attributes
0x40,0x00,//MaxPacketSize
0x01,//Interval
0x00,
0x00,
//Audio Endpoint Descriptor
0x07,//Length
0x25,//Descriptor Type
0x01,//Descriptor Subtype
0x01,//Attributes
0x00,//LockDelayUnits
0x00,0x00,//LockDelay
};
CH563里面是有現(xiàn)成的模擬AUDIO設(shè)備的例程的,如果描述符沒有什么問題中斷服務(wù)函數(shù)你參考那個例程移植就可以了。
找到問題所在了 是因?yàn)槊杜eAUDIO配置描述符的時候描述符超過了64bytes CH549上面怎么實(shí)現(xiàn)分包發(fā)送呢
我們例程里面應(yīng)該做了分包處理,如圖所示:
我按這個寫上去? ?發(fā)現(xiàn)只能收到前面64個字節(jié)的配置描述符
你好 你可以加打印監(jiān)控一下這些長度變量 看一下在哪里出了問題