esp32开发与应用(esp和wch芯片的USB配合)
📅 2026/7/1 21:33:09
👁️ 次浏览
【 声明版权所有欢迎转载请勿用于商业用途。 联系信箱feixiaoxing 163.com】除了网络配合之外还有一种情况就是usb处理。对于wch芯片来说usb更是自己的看家本领。大家如果经常买开发板就会看到很多的usb转串口芯片很多就是他们家的。但如果不想单独买一个转串口的芯片则可以直接用mcu的usb功能去生成。1、大部分usb都是为了给pc当devicemcu自己当usb host的机会有但是不多。大多数情况下要么是pc通过usb读取mcu模块上面的文件要么是通过usb实时给mcu模块发命令这两种情况都是把mcu当device进行使用。当然实际使用的时候可以把自己report成HID类设备类似于鼠标和键盘也可以把自己report成CDC也就是串口还有一种就是CDC-HID两种一起report适合用于私有协议处理。两个都是免驱的。2、ch32v307支持两个usb一个usb是fs一个是hs用的时候别选错了。3、最适合入门的demo不管是fs还是hs里面都有usb/device的folder。找到之后可以寻找一下SimulatorCDC这个目录可以把工程看一看。这个工程的主要目的就是实现一个usb转串口的功能。编译后根据自己选择的usb用type c线连上去之后pc端就会显示多一个com口。而tx/rx呢则是a2/a3也就是说usb收到的内容会a2发出去而a3收到的内容也会report给usb。4、测试方法直接杜邦线短接a2和a3这样就会形成一个自环测试。测试的时候这个波特率是假的可以任意进行设置。5、实际usb使用与改造实际使用的时候usb测这部分一般是保留的还是当成com口。但是uart这部分未必需要。很多情况下我们需要的是一个usb通信的机制但不是当成tx/rx转成串口。6、代码分析里面比较重要的代码有几处。一处是main.c最后的循环让我们了解到串口收发的本质while(1) { UART2_DataRx_Deal( ); UART2_DataTx_Deal( ); }还有一个是就是usb_desc.c里面的MyCfgDescr把自己report成了一个CDC设备/* Configuration Descriptor */ const uint8_t MyCfgDescr[] { /* Configure descriptor */ 0x09, 0x02, 0x43, 0x00, 0x02, 0x01, 0x00, 0x80, 0x32, /* Interface 0 (CDC) descriptor */ 0x09, 0x04, 0x00, 0x00, 0x01, 0x02, 0x02, 0x01, 0x00, /* Functional Descriptors */ 0x05, 0x24, 0x00, 0x10, 0x01, /* Length/management descriptor (data class interface 1) */ 0x05, 0x24, 0x01, 0x00, 0x01, 0x04, 0x24, 0x02, 0x02, 0x05, 0x24, 0x06, 0x00, 0x01, /* Interrupt upload endpoint descriptor */ 0x07, 0x05, 0x81, 0x03, (uint8_t)DEF_USBD_ENDP1_SIZE, (uint8_t)( DEF_USBD_ENDP1_SIZE 8 ), 0x01, /* Interface 1 (data interface) descriptor */ 0x09, 0x04, 0x01, 0x00, 0x02, 0x0A, 0x00, 0x00, 0x00, /* Endpoint descriptor */ 0x07, 0x05, 0x02, 0x02, (uint8_t)DEF_USBD_ENDP2_SIZE, (uint8_t)( DEF_USBD_ENDP2_SIZE 8 ), 0x00, /* Endpoint descriptor */ 0x07, 0x05, 0x83, 0x02, (uint8_t)DEF_USBD_ENDP3_SIZE, (uint8_t)( DEF_USBD_ENDP3_SIZE 8 ), 0x00, };再就是ch32v30x_usbfs_device.c里面的USBFS_IRQHandler函数。和pc之间的usb交互主要就是通过这个函数实现的。而串口和usb的通信则是在UART.c里面函数就是刚刚说的UART2_DataTx_Deal和UART2_DataRx_Deal。/********************************************************************* * fn UART2_DataTx_Deal * * brief Uart2 data transmission processing * * return none */ void UART2_DataTx_Deal( void ) { // ... } /********************************************************************* * fn UART2_DataRx_Deal * * brief Uart2 data receiving processing * * return none */ void UART2_DataRx_Deal( void ) { // ... }
从 Paper 到代码原型:先复现核心假设,不要复刻全部细节
一、读 Paper 做原型要抓住核心贡献
AI 创业团队经常需要快速把 Paper 转成产品原型。但读 Paper 不能陷入复刻全部细节。论文里的数据集、训练设置、消融实验和工程环境往往很复杂,创…
📅 2026/7/1 21:33:09
1. 项目概述:从一次典型的500报错说起如果你在渗透测试或者安全学习的过程中,玩过WebWolf这个靶场,那么对它的文件上传功能一定不陌生。这个靶场设计得挺有意思,它模拟了真实环境中开发者可能犯的各种错误,尤其是文件上…
📅 2026/7/1 21:33:09
1. 项目概述与问题定位最近在对接一个需要符合特定安全规范的项目时,遇到了一个挺典型的问题:使用PHP进行国密SM4算法解密时,传入的密文是Base64编码的字符串,但解密出来的结果要么是乱码,要么直接报错。我用的库是社区…
📅 2026/7/1 21:33:09
本文还有配套的精品资源,点击获取
简介:一个用C写的轻量级考试题库管理程序,直接在Dev-C里就能编译运行,双击项目1.exe就能启动。系统有登录验证功能,输入账号密码才能进入主菜单;支持添加新题目&#x…
📅 2026/7/1 22:51:48
1. 项目概述:为什么勒索病毒处置是运维的“必修课” 干了十几年运维,从机房搬服务器到云原生架构都折腾过,最让我后背发凉、半夜被电话惊醒的场景,十有八九都和勒索病毒有关。这玩意儿不像普通的系统崩溃或者网络中断,…
📅 2026/7/1 22:51:48
1. 项目概述:为什么XSS防护是Java开发者的必修课最近在review团队里几个新项目的代码,发现一个挺普遍的现象:很多兄弟对业务逻辑的实现很上心,各种设计模式、性能优化玩得飞起,但一到安全编码这块,尤其是针…
📅 2026/7/1 22:51:48
博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…
📅 2026/7/1 22:51:48
1. 这不是“AI课”,而是一场面向所有人的对话能力重建实验“AI for Everyone: Conversational AI Explained”——这个标题里没有一个技术术语,却藏着过去五年最深刻的一次人机关系重构。我带过27个不同行业的AI工作坊,从社区老年大学的智能手…
📅 2026/7/1 22:51:48
1. 项目概述:当爬虫撞上加密视频流 做爬虫的,尤其是搞视频下载的,迟早会遇到m3u8这个玩意儿。它本质上就是个播放列表文件,告诉你一个视频被切成了多少个小片段(ts文件),以及这些片段在哪里。这…
📅 2026/7/1 22:49:48
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/1 0:00:39
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/1 0:00:39
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/1 0:00:39
6个月前的2025年12月,Boris Cherny 公开宣布自己卸载了 IDE。一时间,Vibe Coding 成了全行业最热的话题。6个月后,当我们回过头来拉一份真实账本,发现事情远没有"一句话生成一个App"那么浪漫。本文从产品经理和研发两个…
📅 2026/6/30 10:04:37
引言:审计结束三个月了,审计员的权限还没关某城商行每年按照监管要求开展至少一次数据安全审计。审计期间,内审部门需要抽样检查各类业务数据——交易流水、客户信息、员工操作日志、权限配置记录。这些数据分布在不同系统中,审计…
📅 2026/7/1 15:35:39
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/1 0:00:39
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/1 0:00:39
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/1 0:00:39