首页 > 其他分享 >USB-CDC虚拟串口实现printf功能

USB-CDC虚拟串口实现printf功能

时间:2023-09-14 14:35:48浏览次数:40  
标签:USB CDC 打印 虚拟 串口 调试

本篇文章介绍如何使用CH32来实现USB虚拟串口打印功能,代替传统中的串口打印。

相比传统串口优势点:

 1,速度快,一包大概也就几十us,而传统的大概要用到几ms。

 2,节省了一个USB转串口芯片的成本。

 3,在没有USB转串口工具的情况下,可以很方便调试。

下面就介绍怎么配置

USB-FS口

一,在USB-FS-CDC例程的基础上debug.c中添加头文件

 二,屏蔽掉原先的重定向函数,并添加需要初始化的部分:

 三,CDC串口的重定向

判断用while的话一包都不会丢,但当串口调试助手关闭时会导致程序卡住,只是调试用可直接用if,加一个1ms延时,现在就可以测试打印功能了

 但是测试发现在传输过程中关闭串口调试助手再打开时总会提示打不开串口,不在传数据的话则没这个问题,抓包发现上位机发命令时端点三还有数据,可能是此导致上位机误以为串口繁忙。

我采取的方法是在setup中断中将负责发送的端点3给关闭,然后在定时器中断中打开即可。100us就够了。

这样就可以实现了(波特率不用设定,速度取决于主机IN包速率)

 总结:目前只适合做一些调试来使用,实际使用还需要做具体修改。

另外USBD这里就不单独拿出来说明了,想要的可以评论留个邮箱。

 

标签:USB,CDC,打印,虚拟,串口,调试
From: https://www.cnblogs.com/wchmcu/p/17665489.html

相关文章

  • Intel正式发布雷电5:120Gbps带宽、240W充电逆天!玩法远胜USB4 2.0
    Intel正式发布了全新一代的Thunderbolt5接口标准,也就是雷电5,无论传输速度还是连接能力,都实现了一次巨大的飞跃,更是展示了基于雷电5的新一代笔记本、扩展坞原型。这里,我们就看看雷电5到底带来了哪些变化,可以如何改变我们的工作、生活和娱乐方式,以及Intel在背后有怎样的思考,做出了......
  • AT 指令集调测工具 串口调试工具
    【我的物联网成长记8】超速入门AT指令集-云社区-华为云https://bbs.huaweicloud.com/blogs/129189【我的物联网成长记8】超速入门AT指令集我是卤蛋 发表于2019/11/0510:25:10  9.3k+  4  2 【摘要】在物联网中,AT命令集可用于控制&调测设备、通信模块入网等。本......
  • linux系统下禁用usb口
    当用户不需要使用usb口时可在系统下通过以下方式禁用usb口:首先执行lsusb查看识别到的usb设备: root@localhost:~#lsusbBus003Device002:ID0000:3825  USBOPTICALMOUSEBus003Device001:ID1d6b:0002LinuxFoundation2.0roothubBus002Device002:ID1c4f:00......
  • Lattice下载器高速编程器HW-USBN-2B fpga仿真器ispdown烧录器
    1.概述       HW-USBN-2B编程烧录Lattice所有芯片,速度非常快。支持LatticeFPGA芯片在线稳定仿真、烧录、加密,支持LatticeCPLD烧录。支持外部配置FLASH、PROM配置烧录。    HW-USBN-2B,特点是很快的速度,30Mb/s,是HW-USBN-2A的下载速度10速度。并且支持I2C接口......
  • USB适配器应用芯片 国产GP232RL软硬件兼容替代FT232RL DPU02直接替代CP2102
    USB适配器,是英文UniversalSerialBus(通用串行总线)的缩写,而其中文简称为“通串线”,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯。是应用在PC领域的接口技术,移动PC由于没有电池,电源适配器对其尤为重要。今天来讲讲USB适配器的国产适用芯片。一、GP232RL,直接软硬件......
  • Android USB开发1—开发环境搭建
    通过Genymotion与VirtualBox可以实现将电脑中的USB设备转接到Android模拟器中进行通信。Genymotion配置首先从https://www.genymotion.com/download/下载GenymotionwithVirtualBox在完成模拟器的创建后,无论是否启动模拟器都可以在OracleVMVirtualBox中进行USB的配......
  • Android USB开发—USB通信
    USB通信两端分别称为:HOST(USB主机)与Device(USB从机/USB配件),常见的主机就是我们的计算机。而Android可以支持USB主机模式与USB配件模式,意思就是Android既可以是主机也可以是配件。Android作为配件与其通信的主机必须设计为与Android设备兼容,即遵循Android配件通信协议(AOA协......
  • 上位机使用JS SerialPort进行串口通信, 包含开发环境搭建和完整示例代码
    在嵌入式开发中,我们经常需要使用上位机(PC)与一些电路模块进行通信,用于获取一些传感器的数据,或者发送命令控制相应的电路模块。NodeJS目前支持使用SerialPort模块进行串口通信,本文主要介绍如何搭建测试开发环境和如何使用SerialPort进行串口通信。 开发前准备:1.下载安装NodeJS......
  • Flink CDC 原理、实践和优化
    本文转载自:https://zhuanlan.zhihu.com/p/430182083 CDC变更数据捕获技术可以将源数据库的增量变动记录,同步到一个或多个数据目的。本文基于腾讯云Oceanus提供的FlinkCDC引擎,着重介绍Flink在变更数据捕获技术中的应用。一、CDC是什么?CDC是变更数据捕获(ChangeData......
  • 在 Java 应用程序中访问 USB 设备
    介绍USB、jUSB和JSR-80Java平台一直都以其平台无关性自豪。虽然这种无关性有许多好处,但是它也使得编写与硬件交互的Java应用程序的过程变得相当复杂。在本文中,研究科学家蒋清野讨论了两个项目,它们通过提供使Java应用程序可以使用USB设备的API而使这个过程变得更容易。......