RYMCU

Hugh

不在沉默中爆发,就在沉默中老去!

CH32V USB 设备中断处理函数解析 USB
这段代码是 CH32V 系列微控制器的 USB 设备中断处理函数(USBD_IRQHandler),主要负责处理 USB 传输事件、设置请求和连接状态变化。以下是详细解析:一、函数概述​功能​:处理 USB 设备端的各种中断事件,包括传输完成、设置包接收和连接状态变化。​核心逻辑​:读取中断标志寄存器(INT_FG)判断中断类型。根据不同中断类型执行相应处理:传输完成(USBHS_TRANSFER
Hugh 1 天前
USB传输组成 USB
看起来很难,其实一点也不简单。USB 传输 Transfer.xmind
Hugh 1 天前
DAPLink与USB主机、目标设备之间的数据交互异步处理流程 USB
这段代码实现了 USB DAP 协议的核心功能:​请求接收​:通过 OUT 端点回调(dap_out_callback)将数据存入环形队列,队列满时暂停接收(USB_RequestIdle),处理完成后恢复。​请求处理​:主函数(chry_dap_handle)循环处理队列中的请求,生成响应,并协调队列状态。​响应发送​:通过 IN 端点回调(dap_in_callback)将响应发送回主机,队列
Hugh 1 天前
DAPLink的USB数据发送过程 USB
DAP 数据发送过程:1)当 USB 配置完成后,根据协议 DAP 主机发来 IN 事务,表示要从下载器获取数据,若 DAP 没有数据需要发送,则在数据阶段发送 NAK 告诉主机数据还没准备好;2)当 DAP 有数据需要发送时,在主函数中调用 usbd_ep_start_write(DAP_IN_EP, USB_Response[n], USB_RespSize[n]);,作用为:给 USB DM
Hugh 1 天前
USB IN/OUT 事务中 ACK 的发送方及数据传输确认机制 USB
一、IN 事务(设备 → 主机数据传输)1. 事务流程​主机发送 IN 令牌包​:通知设备准备发送数据。​设备响应​:若数据准备好:发送数据包(DATA0/DATA1)。若未准备好:发送 NAK 握手包。若设备错误:发送 STALL 握手包。​主机确认​:成功接收数据后,向设备发送​ACK 握手包​,表示 “数据已收到”。若接收数据错误(如 CRC 校验失败),不返回任何握手包,设备需重试。2.
Hugh 1 天前
DAPLink的USB数据接收过程 USB
DAP 数据传输过程:1)首先进入枚举阶段,在 USB 配置完成中断(USBD_EVENT_CONFIGURED)中第一次调用 usbd_ep_start_read(DAP_OUT_EP, USB_Request[0], DAP_PACKET_SIZE); 目的为:初始化端点接收缓存;2)当主机 DAP 端点发来数据时,OUT 事务完成时,此时数据已经通过 DMA 放到 USB_Request[0
Hugh 3 天前
USB描述符 USB
USB 描述符文件分析该文件定义了一个 USB 设备的描述符数组 cmsisdap_descriptor,用于描述 USB 设备的各种属性和配置。下面将详细分析这个描述符数组。整体结构USB 描述符是一种数据结构,用于向 USB 主机描述设备的特性和功能。描述符通常由多个部分组成,每个部分都有特定的用途。这个描述符数组包含了设备描述符、配置描述符、接口描述符、端点描述符、字符串描述符和设备限定符等
Hugh 8 天前
关于我用500大洋买了LDO设计的惨痛经验教训 待分类
1.项目需求一套板子上需要将 6-18V 电压转换成 5V 电压,且工作电流不大 100mA 左右。2.芯片选型于是从网上搜得线性稳压器 LDO 一枚如下:工作电压达到 20V,满足我 6-18V 指标要求。输出电流 500mA,远大于 100mA 实际需求,关键是还便宜,批量只需要几毛钱。似乎一切都很完美。于是果断的添加到板子上,花了 500 大洋打样了。3.调试测试板子拿回来后果断加 12V
Hugh 22 天前
vscode下使用platformio开发STM32如果将.bin文件放到工程根目录 nebula-vscode
步骤 1:创建 Python 脚本在项目根目录下新建文件 copy_bin.py,内容如下:Import("env") import shutil import os def copy_bin_after_build(source, target, env): try: # 获取生成的 .bin 文件真实路径(核心代码) build_dir = env.s
Hugh 2 月前
stm32使用printf无法输出浮点数怎么办? prinf
启用浮点数格式化支持Keil MDK-ARM打开工程选项 → Target → Code Generation 勾选 ​Use MicroLIB​。在 Linker 选项卡 → Misc Controls 添加 --u _printf_float。vscode + platformIOPlatformIO 默认使用的 newlib-nano 库禁用了浮点数格式化(以节省空间),需手动启用。在项目根
Hugh 2 月前
RYCOM小助手winget安装方法 winget RYCOM
win 操作系统搜索 Windows powershell,运行:首次输入指令自动安装:winget install rycom版本升级指令:winget upgrade rycom
Hugh 3 月前
github没法访问的情况下,如何快速获取仓库工程呢? github
有仓库地址,但无法访问 github 的情况下。我门可以借助 gitee 实现仓库下载。具体操作方法为:gitee 新建仓库,选择"从 github/gitlab 导入仓库",将 github 仓库地址填入进行同步,创建好之后下载即可。
Hugh 3 月前
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 11