找回密码
 立即注册
楼主: firefly2k

如何将一箭双雕改成一箭一雕【已解决】

[复制链接]
  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

718

主题

1万

回帖

1万

积分

管理员

积分
15630
发表于 2023-9-18 17:56:51 | 显示全部楼层
我请同事帮忙下
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6843

积分

论坛元老

积分
6843
发表于 2023-9-18 18:34:08 | 显示全部楼层
将双串口改成单串口主要就修改USB配置参数,配置参数改完就识别成一个串口设备了:
  1. char code DEVICEDESC[18] =
  2. {
  3.     0x12,                   //bLength(18);
  4.     0x01,                   //bDescriptorType(Device);
  5.     0x00,0x02,              //bcdUSB(2.00);
  6.     0x02,                   //bDeviceClass(2:Communication Device Class);
  7.     0x00,                   //bDeviceSubClass0);
  8.     0x00,                   //bDeviceProtocol(0);
  9.     0x40,                   //bMaxPacketSize0(64);
  10.     0xbf,0x34,              //idVendor(34bf);
  11.     0x02,0xff,              //idProduct(ff02);
  12.     0x00,0x01,              //bcdDevice(1.00);
  13.     0x01,                   //iManufacturer(1);
  14.     0x02,                   //iProduct(2);
  15.     0x00,                   //iSerialNumber(0);
  16.     0x01,                   //bNumConfigurations(1);
  17. };
  18. char code CONFIGDESC[67] =
  19. {
  20.     0x09,                   //bLength(9);
  21.     0x02,                   //bDescriptorType(Configuration);
  22.     0x43,0x00,              //wTotalLength(67);
  23.     0x02,                   //bNumInterfaces(2);
  24.     0x01,                   //bConfigurationValue(1);
  25.     0x00,                   //iConfiguration(0);
  26.     0x80,                   //bmAttributes(BUSPower);
  27.     0x32,                   //MaxPower(100mA);
  28.     0x09,                   //bLength(9);
  29.     0x04,                   //bDescriptorType(Interface);
  30.     0x00,                   //bInterfaceNumber(0);
  31.     0x00,                   //bAlternateSetting(0);
  32.     0x01,                   //bNumEndpoints(1);
  33.     0x02,                   //bInterfaceClass(Communication Interface Class);
  34.     0x02,                   //bInterfaceSubClass(Abstract Control Model);
  35.     0x01,                   //bInterfaceProtocol(Common AT commands);
  36.     0x00,                   //iInterface(0);
  37.     0x05,                   //bLength(5);
  38.     0x24,                   //bDescriptorType(CS_INTERFACE);
  39.     0x00,                   //bDescriptorSubtype(Header Functional Descriptor);
  40.     0x10,0x01,              //bcdCDC(1.10);
  41.     0x05,                   //bLength(5);
  42.     0x24,                   //bDescriptorType(CS_INTERFACE);
  43.     0x01,                   //bDescriptorSubtype(Call Management Functional Descriptor);
  44.     0x00,                   //bmCapabilities(Device does not handles call management itself);
  45.     0x01,                   //bDataInterface(1);
  46.     0x04,                   //bLength(4);
  47.     0x24,                   //bDescriptorType(CS_INTERFACE);
  48.     0x02,                   //bDescriptorSubtype(Abstract Control Management Functional Descriptor);
  49.     0x02,                   //bmCapabilities(Set/Get_Line_Coding,Serial_State,Set_Control_Line_State);
  50.     0x05,                   //bLength(5);
  51.     0x24,                   //bDescriptorType(CS_INTERFACE);
  52.     0x06,                   //bDescriptorSubtype(Union Functional descriptor);
  53.     0x00,                   //bMasterInterface(0);
  54.     0x01,                   //bSlaveInterface0(1);
  55.     0x07,                   //bLength(7);
  56.     0x05,                   //bDescriptorType(Endpoint);
  57.     0x82,                   //bEndpointAddress(EndPoint2 as IN);
  58.     0x03,                   //bmAttributes(Interrupt);
  59.     0x40,0x00,              //wMaxPacketSize(64);
  60.     0xff,                   //bInterval(255ms);
  61.     0x09,                   //bLength(9);
  62.     0x04,                   //bDescriptorType(Interface);
  63.     0x01,                   //bInterfaceNumber(1);
  64.     0x00,                   //bAlternateSetting(0);
  65.     0x02,                   //bNumEndpoints(2);
  66.     0x0a,                   //bInterfaceClass(Data Interface Class);
  67.     0x00,                   //bInterfaceSubClass(AData Interface Class SubClass Codes);
  68.     0x00,                   //bInterfaceProtocol(USB SPEC);
  69.     0x00,                   //iInterface(0);
  70.     0x07,                   //bLength(7);
  71.     0x05,                   //bDescriptorType(Endpoint);
  72.     0x84,                   //bEndpointAddress(EndPoint4 as IN);
  73.     0x02,                   //bmAttributes(Bulk);
  74.     0x40,0x00,              //wMaxPacketSize(64);
  75.     0x00,                   //bInterval(Ignored);
  76.     0x07,                   //bLength(7);
  77.     0x05,                   //bDescriptorType(Endpoint);
  78.     0x04,                   //bEndpointAddress(EndPoint4 as OUT);
  79.     0x02,                   //bmAttributes(Bulk);
  80.     0x40,0x00,              //wMaxPacketSize(64);
  81.     0x00,                   //bInterval(Ignored);
  82. };
复制代码
附件使用一箭双雕USB转双串口A0例程修改USB配置,主函数里将自检部分删除避免使用不同板子测试自检通不过导致不识别。最小改动实现楼主需求。

USB-CDC转单串口开源例程 - 根据串口波特率自动调整主频.zip

38.64 KB, 下载次数: 76

回复 支持 1 反对 0

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2025-03-30 20:18:10

11

主题

45

回帖

236

积分

中级会员

积分
236
发表于 2023-9-19 07:22:10 | 显示全部楼层
本帖最后由 firefly2k 于 2023-9-19 07:29 编辑
乘风*** 发表于 2023-9-18 18:34
将双串口改成单串口主要就修改USB配置参数,配置参数改完就识别成一个串口设备了:
附件使用一箭双雕USB转 ...

谢谢!试过了,可以了,也没有stc32烧录串口屏的问题,完全是我想要的。专家就是专家,竟然一会就给搞定了,我还以为最快还得第二天才能答复
刚刚和双串口程序对比了下,这个真不是新手能改的,除非特别了解usb。像我这样的新手完全改不了,完全不是2改成1,或者简单做减法能完成的,只能专业的人来做

这下终于可以在这个基础上,添加其他功能,项目可以继续进行下去了,我卡在这好多天了
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

718

主题

1万

回帖

1万

积分

管理员

积分
15630
发表于 2023-9-19 09:08:56 | 显示全部楼层
我致电请我们内部同事,我们专家百忙中下班后帮忙改的,
我误以为大家都和我们同事一样,做个减法10分钟就能搞定的事,
结果没想到还是小有点工作量,电话后,我们专家也是加班花了30分钟才出了成果

总之:
一心一意,做好 www.STCAIMCU.com 的技术支持
一箭双雕,做好【1T 8051+USB转双串口 通信】的普及工作
一石三鸟,做好 USB型/8051+CAN型/32位8051+硬件浮点/三角函数-FOC电机控制, 同步前进
回复 支持 1 反对 0

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2024-02-18 15:24:44

0

主题

13

回帖

66

积分

注册会员

积分
66
发表于 2023-9-19 15:59:31 | 显示全部楼层
如果能搞成一箭三雕:串口、键盘、鼠标 三合一就好了。。。
冲哥的贴说可行,STC可以提供代码例程吗?
AY二号(ltz):230919第6390人,专业围观、灌水、坐沙发...
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

718

主题

1万

回帖

1万

积分

管理员

积分
15630
发表于 2023-9-19 16:03:27 | 显示全部楼层
大家请冲哥帮忙下,我们在忙 AEC Q100认证
回复 支持 1 反对 0

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2025-03-30 20:18:10

11

主题

45

回帖

236

积分

中级会员

积分
236
发表于 2023-9-20 08:27:49 | 显示全部楼层
本帖最后由 firefly2k 于 2023-9-20 08:29 编辑
神*** 发表于 2023-9-19 09:08
我致电请我们内部同事,我们专家百忙中下班后帮忙改的,
我误以为大家都和我们同事一样,做个减法10分钟就 ...

其实分啥事,有些事别说10分钟,就算1分钟你们同事能搞定的,对于我们新手来说可能10天都搞不出来。所谓会者不难,难者不会就是这个道理吧
总之,谢谢了,辛苦了!
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

718

主题

1万

回帖

1万

积分

管理员

积分
15630
发表于 2023-9-20 08:36:07 | 显示全部楼层
以后移植时大家可以及时讲下实际遇到的情况难度,
我们好判断要不要及时放下手中的研发任务参加到您的项目中。
我们研发任务也很重,做了这个,就耽误了那个,大家理解 !
本坛本意是全体STC大家庭一起互相帮助的论坛。


USB/PWM/CAN 比较专业,大家一起来帮忙,前进 !


回复 支持 1 反对 0

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 20:27 , Processed in 0.179591 second(s), 96 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表