找回密码
 立即注册
查看: 554|回复: 9

一箭双雕USB转双串口支持DTR、RTS信号输出

[复制链接]
  • TA的每日心情
    开心
    前天 23:22
  • 签到天数: 113 天

    [LV.6]常住居民II

    25

    主题

    304

    回帖

    1041

    积分

    荣誉版主

    Cyber Hamster

    积分
    1041
    发表于 2023-10-23 21:45:18 | 显示全部楼层 |阅读模式
    一箭双雕USB转双串口支持DTR、RTS信号输出了!!!
    某群有小伙伴一直想用STC8H8K64U的USB-CDC转串口给某友商MCU自动下载程序
    之前得出的结论是协议不支持
    今天看《圈圈教你玩USB》书时发现协议居然虽然不支持CTS
    但是DTR和RTS是支持的
    截图202310232134031891.jpg
    和某群小伙伴探讨了一下
    他还发了一张官方文档的截图

    截图202310232141355690.jpg
    这正是某友商MCU自动下载程序需要用到的信号

    截图202310232201223990.jpg

    不废话

    干就完了

    用某友商下载软件测试两个通道的信号和某C****2 USB转串口芯片的完全一致

    用一箭双雕A0和A1例程改的

    很简单

    就几行代码

    看附件吧

    一箭双雕USB转双串口支持DTR、RTS信号输出.zip

    97.07 KB, 下载次数: 33

    (=・ω・=)
    回复 送花

    使用道具 举报

  • TA的每日心情

    2024-3-2 13:06
  • 签到天数: 1 天

    [LV.1]初来乍到

    1

    主题

    4

    回帖

    35

    积分

    新手上路

    积分
    35
    发表于 2024-3-2 11:28:50 | 显示全部楼层
    我在VSCODE下用 一箭双雕 不能自动断电 试试这个
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情

    昨天 06:30
  • 签到天数: 63 天

    [LV.6]常住居民II

    3

    主题

    564

    回帖

    786

    积分

    高级会员

    积分
    786
    发表于 2024-3-17 12:10:12 | 显示全部楼层
    这样可以对一些单片机不断电下载了
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 20:18
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    35

    主题

    86

    回帖

    739

    积分

    高级会员

    积分
    739
    发表于 2024-3-17 20:21:07 | 显示全部楼层
    DTR、RTS是两个独立的物理引脚,与串口的收发两个引脚没有直接联系。怎么引出来?

    点评

    经过编程,从接OLED屏的7针插座处输出  发表于 2024-3-18 18:14
    楼主是 USB-CDC转串口,用USB的MCU实现了这2个脚的功能  详情 回复 发表于 2024-3-17 20:23
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    550

    主题

    9345

    回帖

    1万

    积分

    管理员

    积分
    13916
    发表于 2024-3-17 20:23:42 | 显示全部楼层
    lgwd 发表于 2024-3-17 20:21
    DTR、RTS是两个独立的物理引脚,与串口的收发两个引脚没有直接联系。怎么引出来? ...

    楼主是 USB-CDC转串口,用USB的MCU实现了这2个脚的功能
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 20:18
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    35

    主题

    86

    回帖

    739

    积分

    高级会员

    积分
    739
    发表于 2024-3-18 22:47:34 | 显示全部楼层
    比如我使用STC8H8K64U,使用贵公司的CDC库。PC端将P3.0/3.1的USB口视为一个普通RS-232口。PC机端发送DTR、RTS信号,STC8H8K64U怎么接收到DTR、RTS信号,又是怎样在STC端体现出DTR、RTS信号尼?

    点评

    顶楼附件,楼主提供了程序,你打开认真看下  详情 回复 发表于 2024-3-18 23:24
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    550

    主题

    9345

    回帖

    1万

    积分

    管理员

    积分
    13916
    发表于 2024-3-18 23:24:28 | 显示全部楼层
    lgwd 发表于 2024-3-18 22:47
    比如我使用STC8H8K64U,使用贵公司的CDC库。PC端将P3.0/3.1的USB口视为一个普通RS-232口。PC机端发送DTR、R ...

    顶楼附件,楼主提供了程序,你打开认真看下
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    前天 23:22
  • 签到天数: 113 天

    [LV.6]常住居民II

    25

    主题

    304

    回帖

    1041

    积分

    荣誉版主

    Cyber Hamster

    积分
    1041
     楼主| 发表于 2024-3-18 23:50:08 | 显示全部楼层
    lgwd 发表于 2024-3-18 22:47
    比如我使用STC8H8K64U,使用贵公司的CDC库。PC端将P3.0/3.1的USB口视为一个普通RS-232口。PC机端发送DTR、R ...
    1. void usb_set_ctrl_line_state()
    2. {
    3.     if ((DeviceState != DEVSTATE_CONFIGURED) ||
    4.         (Setup.bmRequestType != (OUT_DIRECT | CLASS_REQUEST | INTERFACE_RECIPIENT)))
    5.     {
    6.         usb_setup_stall();
    7.         return;
    8.     }
    9.        
    10.         Interface = Setup.wIndexL;
    11.         if (Interface == 0)
    12.     {
    13.         P15=!(Setup.wValueL&0x01);        //DTR1
    14.                 P13=!(Setup.wValueL&0x02);        //RTS1
    15.     }
    16.     else if (Interface == 2)
    17.     {
    18.         P14=!(Setup.wValueL&0x01);        //DTR2
    19.                 P34=!(Setup.wValueL&0x02);        //RTS2
    20.     }
    21.     usb_setup_status();
    22. }
    复制代码


    (=・ω・=)
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-8 06:23 , Processed in 0.068394 second(s), 61 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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