- 打卡等级:初来乍到
- 打卡总天数:3
- 最近打卡:2025-04-14 07:09:01
高级会员
- 积分
- 577
|
趁一点空闲
琢磨一下Ai8051USB控制
以前买的圈圈教你学USB开发板和书
感觉挺复杂的
可以玩的例程也不多
买了几片 DIP的 Ai8051
好奇研究下例程
发现USB定义和圈圈书中内容部分能吻合
于是做了一下注释
char code DEVICEDESC[18] = //usb标准设备描述符
{
0x12, //bLength(18); 设备描述符长度18字节
0x01, //bDescriptorType(Device); 设备描述符编号
0x00,0x02, //bcdUSB(2.00); USB版本 USB1.0 USB2.0
0x00, //bDeviceClass(0); 设备 描述符定义设备类 不在此定义 为0
0x00, //bDeviceSubClass0); 不在此定义 为0
0x00, //bDeviceProtocol(0); 不在此定义 为0
0x40, //bMaxPacketSize0(64); 端点64字节
0xbf,0x34, //idVendor(34bf); USB协会申请的ID号
0x18,0xff, //idProduct(ff18); 产品ID号
0x00,0x01, //bcdDevice(1.00); 版本号
0x01, //iManufacturer(1); 厂商字符串索引值
0x02, //iProduct(2); 产品字符串索引值
0x00, //iSerialNumber(0); 设备字符串索引值
0x01, //bNumConfigurations(1); 该设备配置值
};
后面几段子程序还在研究中
char code CONFIGDESC[194] = //
{
0x09, //bLength(9);
0x02, //bDescriptorType(Configuration);
0xc2,0x00, //wTotalLength(194);
0x03, //bNumInterfaces(3);
0x01, //bConfigurationValue(1);
0x00, //iConfiguration(0);
0x80, //bmAttributes(BUSPower);
0x32, //MaxPower(100mA);
char code LANGIDDESC[4] =
{
0x04,0x03,
0x09,0x04,
};
char code MANUFACTDESC[8] =
{
0x08,0x03,
'S',0,
'T',0,
'C',0,
};
char code PRODUCTDESC[28] =
{
0x1c,0x03,
'S',0,
'T',0,
'C',0,
' ',0,
'U',0,
'S',0,
'B',0,
' ',0,
'A',0,
'u',0,
'd',0,
'i',0,
'o',0,
};
char code PACKET0[2] =
{
0, 0,
};
char code PACKET1[2] =
{
1, 0,
};
以前买了仿三菱PLC似乎也可以做Ai8051U实验板
|
|