找回密码
 立即注册
查看: 135|回复: 2

CDC串口,DTR可以单独控制输出,RTS不行

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:276
  • 最近打卡:2026-07-04 10:29:34
已绑定手机

10

主题

36

回帖

1064

积分

金牌会员

积分
1064
发表于 2026-3-24 11:30:27 | 显示全部楼层 |阅读模式
AI8051U上跑qtz-KeilC51-V20250820里的A3历程, 上位机用SSCOM,  发现DTR可以单独控制输出,RTS不行,在DTR状态变化时RTS的状态才会一并输出。 跟踪代码发现是上位机的行为。 传统串口就是这样的还是USBCDC上独有?有达人知否?

只有DTR状态变化时才会触发以下代码
void usb_set_ctrl_line_state()
{
    if ((DeviceState != DEVSTATE_CONFIGURED) ||
        (Setup.bmRequestType != (OUT_DIRECT | CLASS_REQUEST | INTERFACE_RECIPIENT)))
    {
        usb_setup_stall();
        return;
    }
       
        Interface = Setup.wIndexL;
        if (Interface == 0)
    {
        P15=!(Setup.wValueL&0x01);        //DTR1
                P13=!(Setup.wValueL&0x02);        //RTS1
    }
    else if (Interface == 2)
    {
        P14=!(Setup.wValueL&0x01);        //DTR2
                P34=!(Setup.wValueL&0x02);        //RTS2
    }
       
    usb_setup_status();
}

回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:586
  • 最近打卡:2026-07-04 12:34:03
已绑定手机

112

主题

4958

回帖

1万

积分

荣誉版主

无情的代码机器

积分
10758
发表于 2026-3-24 15:59:21 | 显示全部楼层
CDC是这样,单独操作RTS时无USB控制报文。
截图202603241559065337.jpg



可以测试这个
https://www.stcaimcu.com/forum.p ... 7559&pid=163544

三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:276
  • 最近打卡:2026-07-04 10:29:34
已绑定手机

10

主题

36

回帖

1064

积分

金牌会员

积分
1064
发表于 2026-3-24 16:41:43 | 显示全部楼层
erci*** 发表于 2026-3-24 15:59
CDC是这样,单独操作RTS时无USB控制报文。

测试成功,模拟成CH340后可单独控制RTS.   CH340用的WCH驱动而非微软的, 控制报文走的VENDOR REQUEST 而非 CLASS REQUEST. 所以这个是微软驱动的问题
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-7-5 12:31 , Processed in 0.068262 second(s), 51 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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