新闻动态   News
联系我们   Contact
你的位置:首页 > 新闻动态 > 新闻资讯

2026.5.12 经验分享会

2026/5/12 17:40:49      点击:

        2026年5月12日下午,上海实邦电子科技有限公司开展了一次经验交流会,由曾工一起分享了他们在工作中积累的一些经验

        首先是分享了----使用AI进行代码开发

          1、模型选择

          现在各种模型很多,国内的deepseek、千问、GLM等,国外的GPTgemini,claude等。目前使用下来感觉体验最好的claude opus 4.6

       2、模型接入方法

         由于claude对国内用户不太友好,不仅需要科学上网,而且还容易被封号,订阅也贵。以下提供两种方式:

         方式一、国内API中转站

    优点:相对正版订阅更便宜;不需要科学上网.

    缺点:质量参差不齐,很多中转站用其他模型冒充、由于对国内的封禁很多都不太稳定

    费用:从1RMB<->1-20$额度不等,重度使用一天大概需要100$额度

    

         方式二、vscode windsurf等订阅

         优点:模型多可以根据需求选择多种不同模型,稳定,快

         缺点:每日、每周、每月限额,

         花费:以前github copliot以及其他很多code助手计费方式为按次方式,可以实现消耗一次额度维持一个对话无限消耗token,现在均改为按token计费后这个漏洞无法利用了。现找到的暂时能稳定使用的方式从淘宝、闲鱼买windsurf pro账号,每个账号3-6元,可用两周,额度不够可以多账号切换。

         


       曾工分享了----USBHost 主机通讯设计


 基于STM32 平台+STM32CUDEMX 工具,介绍一下如何让STM32芯片作为USB 主机具有和 CH340 芯片通信的功能。USB有主从机之分,CH340 转串口芯片在这里是从机。CH340 作为常用 USB 转串口芯片,属于非标准虚拟串口(VCP)设备,标准 STM32 USBH_CDC 驱动无法直接枚举。通过修改USB_CDC 驱动配置,让USB Host 能正常枚举、收发CH340 串口数据,然后达到与CH340 通讯的效果,整体实现 USB 通讯与工作适用于工控、数据采集等嵌入式场景。


      2 CH340 芯片与 USB 通讯原理

2.1 CH340 特性
      CH340 是 USB 转串口芯片,本质为非标准 USB CDC 设备,通讯方式为虚拟串口(VCP),支持波特率、数据位、停止位、校验位灵活配置。Windows 系统自带驱动可兼容其厂商自定义配置,而 STM32 原生 USBH 驱动仅识别标准 CDC,需修改驱动完成适配。


      2.2 USB结构与数据流约束
      USB采用严格的单主机、多设备星型拓扑。整个系统中 仅存在一个物理主机 (如PC的USB控制器),其余所有节点均为设备(Device)或集线器(Hub)。数据传输均由主机发起,设备无权主动发送数据 。例如,在实现USB鼠标时,设备内部的X/Y位移寄存器可能已更新,但主机不发出IN令牌(IN Token),设备绝不能将新坐标发往总线。
      主机通过周期性轮询(Polling)获取设备状态,设备仅在收到对应端点(Endpoint)的IN请求后,才将预存于端点缓冲区的数据提交到主机。
      USB规范规定,主机端在USB端口D+和D−数据线上分别连接15 k电阻下拉到地(GND)。设备端则根据自身支持的速度,在D+或D−线上连接一个1.5 k上拉电阻至3.3V

      3 USB 完整枚举流程
      USB 主机(STM32)检测到设备插入后,USB 主机(STM32)在设备端插入后读取设备信息、匹配协议、分配地址、配置参数的过程
      设备插入检测:D+/D - 电平变化触发硬件接入事件,主机复位 USB 设备。重置USB设备,将其置于默认状态。重置操作是通过发送一个特殊的复位信号给USB设备的,这会导致设备进入地址状态0。
      获取设备描述符:主机向地址 0 的端点 0 发送数据,发送一个获取设备描述符的标准请求到设备。设备响应此请求,发送其设备描述符给主机控制器。设备描述符包含了制造商ID(VID)、产品ID(PID)、设备版本号等信息。如果确认无误就会向设备返回一个确认数据包(ACK)
      设置设备地址:主机再次复位设备,进入地址设置阶段。主机向地址 0 的端点 0 发送设置地址请求数据包,新的设备地址就包含在这个数据包中,因此没有数据过程。设备进入状态过程,等待主机请求状态返回,收到以后设备就会向主机发送一个 0 字节状态数据包,表明设备已经设置好地址了,主机收到这个 0 字节状态数据包以后会返回一个确认包(ACK)。设备收到主机发送的 ACK 包以后就会使用这个新的设备地址,至此设备就得到了一个唯一的地址。
      主机控制器为设备分配一个唯一的地址(1-127之间的值,因为0已经被用于默认地址)。通过发送一个设置地址的标准请求来告诉设备其新地址。
      获取配置描述符(3次):主机向新的设备地址端点 0 发送请求设备描述符数据包,使用新的设备地址,主机控制器发送一个获取配置描述符的请求。设备响应此请求,发送其配置描述符。配置描述符包含了接口、端点和其他设备特性的详细信息,这一次主机要获取整个设备描述符,一共是 18 个字节,首次通讯只能按照最小字节8字节(传输设备端点0支持最大包长未知)。
      设置配置:主机控制器选择一个配置(通常是设备支持的第一个配置),并通过发送一个设置配置的标准请求来告诉设备。设备根据请求配置其硬件和软件。控制器可以发送请求获取接口和端点描述符用来配置更详细的信息。
      3 STM32 USBHost 驱动修改方案
      时钟配置:USB 时钟必须配置为48MHz,若配置为其他值,将无法识别设备描述符,导致枚举失败。(低速low-speed 传输速率 1.5Mbps  / 全速full-speed 传输速率 12Mbps)