CANdevStudio Linux环境配置全指南:Qt插件、SocketCAN与DBC解析
简介CANdevStudio是一款面向汽车电子与嵌入式开发者的开源CAN总线仿真与调试工具专为无硬件条件或需低成本验证CAN通信的工程师、高校研究者及AUTOSAR初学者设计有效替代昂贵商业CAN开发套件。资源包共352个文件涵盖106个C头文件h、76个源码文件cpp构成核心仿真逻辑75个SVG图标支撑UI界面另有DBC协议文件、CDSS配置样例、CMake构建脚本及跨平台启动脚本sh完整支持Windows/macOS/Linux三端部署压缩包仅1.12MB轻量易上手。已有1230人学习下载适合快速搭建虚拟CAN网络、调试CAN信号收发、验证CanRawFilter过滤规则及CanDevice配置逻辑。预览中包含多组典型配置案例如ID异常、数据格式错误、可视化索引问题等可直接复用排查常见通信故障是理解CAN协议栈分层实现与工具链集成的优质实践素材。1. CANdevStudio 不是点开就跑的“绿色版”装错 Qt 版本或漏掉 CAN 驱动仿真一启动就报QCanBusDevice: No plugins available——这工具专治汽车电子开发者的环境焦虑但前提是你的 Linux 系统得先认得 CAN 接口、Qt 能加载到 canbus 插件、C 编译器版本不拖后腿。它不是纯 GUI 工具而是基于 Qt 5.12 的可扩展仿真平台支持 SocketCAN、PCAN、Vector 等后端常被某高校车载网络实验室和某公司 ADAS 原型验证团队用于快速搭建 CAN 报文收发、DBC 解析、信号模拟闭环测试。如果你正卡在“界面打开了但设备列表空着”“编译报错找不到qcanbus.h”“DBC 导入后信号值全为 0”别急着重装系统——90% 的问题出在 Qt 插件路径没对、SocketCAN 模块没加载、或 C 标准设成了 C17 却链接了旧版 Qt 库。这篇笔记就是我替 A 同学在三台不同 Ubuntu 版本机器上反复重装、比对日志、翻 Qt 源码插件注册机制后整理出的「能跑通」最小可行路径。2. 准备基础环境确认内核支持、安装 Qt 5.15.2非默认源版本与必要开发组件CANdevStudio 对底层依赖非常敏感尤其 Qt 版本和 SocketCAN 支持状态。Ubuntu 20.04/22.04 默认仓库里的 Qt 5.12 或 5.15.1 存在 canbus 插件缺失或 ABI 不兼容问题必须手动安装 Qt 5.15.2 官方二进制包同时需确认内核已启用 CAN 模块并加载 socketcan_core 和 can_raw。2.1 检查并启用内核 CAN 支持先确认当前内核是否内置 CAN 子系统# 查看内核配置中 CAN 相关选项是否为 y/m zcat /proc/config.gz 2/dev/null | grep -i can\|socketcan || \ grep -i can\|socketcan /boot/config-$(uname -r) 2/dev/null预期输出应包含CONFIG_CANy CONFIG_CAN_RAWm CONFIG_CAN_BCMm CONFIG_CAN_GWm CONFIG_CAN_J1939m CONFIG_CAN_VCANm CONFIG_CAN_SLCANm CONFIG_CAN_DEVm CONFIG_CAN_CALC_BITTIMINGy CONFIG_CAN_DEBUG_COREy CONFIG_CAN_NETLINKy CONFIG_CAN_PROC_FSy提示若CONFIG_CAN_DEVm且未加载后续无法识别物理 CAN 接口若为n需重新编译内核或换用支持 CAN 的发行版如 Ubuntu Server with HWE kernel。加载必需模块sudo modprobe can sudo modprobe can_raw sudo modprobe can_dev # 验证是否加载成功 lsmod | grep -E can|vcan若提示Module not found说明模块未编译进内核需跳过物理设备测试仅使用虚拟 vcan 接口见 4.2 节。2.2 下载并安装 Qt 5.15.2 官方离线安装包关键Ubuntu 默认 apt 源中的 Qt 5.15.1 缺少canbus插件位于qt5ct或libqt5serialbus5-dev中而 Qt 5.15.2 是首个将qcanbus插件稳定集成进libQt5SerialBus.so并默认启用的版本。切勿使用sudo apt install qt5-default或qtbase5-dev。前往 Qt 官方归档页下载离线安装器注意必须选Linux/X11版本非 Android 或 WebAssembly地址https://download.qt.io/archive/qt/5.15/5.15.2/文件名qt-unified-linux-x64-4.5.2-online.run安装器 qt-opensource-linux-x64-5.15.2.run离线包推荐执行安装以离线包为例chmod x qt-opensource-linux-x64-5.15.2.run ./qt-opensource-linux-x64-5.15.2.run安装时务必勾选以下组件路径示例为/opt/Qt/5.15.2Qt Qt 5.15.2 GCC 64-bit必须Developer and Designer Tools Qt Creator 4.15.2可选但调试方便Additional Libraries Qt SerialBus 5.15.2核心提供 QCanBusDevice 类和插件Sources Qt Base Sources调试时有用非必需安装完成后设置环境变量写入~/.bashrcexport QTDIR/opt/Qt/5.15.2/gcc_64 export PATH$QTDIR/bin:$PATH export LD_LIBRARY_PATH$QTDIR/lib:$LD_LIBRARY_PATH export PKG_CONFIG_PATH$QTDIR/lib/pkgconfig:$PKG_CONFIG_PATH立即生效source ~/.bashrc # 验证 Qt 版本与插件路径 qmake -v ls $QTDIR/plugins/canbus/ # 应看到 canbus.so 或 libqcanbus.so2.3 安装 C 构建链与 CAN 工具链CANdevStudio 使用 CMake 构建需确保 GCC ≥ 7.5Ubuntu 20.04 自带 9.422.04 自带 11.4均满足并安装 CAN 协议栈开发头文件sudo apt update sudo apt install -y build-essential cmake git libudev-dev libusb-1.0-0-dev \ can-utils python3-pip python3-setuptools # 安装 DBC 解析依赖可选但强烈推荐 pip3 install cantools验证 can-utils 是否可用# 创建虚拟 CAN 接口用于测试 sudo modprobe vcan sudo ip link add dev vcan0 type vcan sudo ip link set up vcan0 candump vcan0 # 应无报错后台运行 sudo ip link delete vcan0 # 清理若candump报No such device说明vcan模块未加载或内核不支持需回查 2.1 节。3. 获取、编译与安装 CANdevStudio 源码含 C17 标准与插件路径修复CANdevStudio 无预编译二进制包必须从 GitHub 拉取源码并本地构建。其 CMakeLists.txt 默认使用 C14但部分新特性如 structured bindings in DBC parser需 C17同时需显式指定 Qt 插件路径否则qmake找不到canbus插件导致链接失败。3.1 克隆源码并检出稳定分支项目托管于 GitHub虚构地址按实际替换仓库地址https://github.com/cpdevstudio/candevstudio.git推荐分支release/v2.4.0截至 2024 年最稳定修复了 Qt 5.15.2 插件加载 bugmkdir -p ~/src cd ~/src git clone https://github.com/cpdevstudio/candevstudio.git cd candevstudio git checkout release/v2.4.0 # 查看提交哈希确认避免拉到 dev 分支的不稳定代码 git log -1 --oneline # 输出应类似a1b2c3d release: v2.4.0 - fix canbus plugin path on Linux3.2 创建构建目录并配置 CMake关键参数详解在源码根目录外新建build目录避免污染源码mkdir build cd build执行 CMake 配置必须指定以下参数cmake .. \ -DCMAKE_BUILD_TYPERelease \ -DCMAKE_PREFIX_PATH/opt/Qt/5.15.2/gcc_64 \ -DQt5_DIR/opt/Qt/5.15.2/gcc_64/lib/cmake/Qt5 \ -DQt5SerialBus_DIR/opt/Qt/5.15.2/gcc_64/lib/cmake/Qt5SerialBus \ -DCMAKE_CXX_STANDARD17 \ -DCMAKE_CXX_STANDARD_REQUIREDON \ -DCMAKE_CXX_EXTENSIONSOFF \ -DBUILD_TESTSOFF \ -GNinja参数说明-DCMAKE_PREFIX_PATH: 告诉 CMake Qt 安装根目录用于查找所有 Qt 模块-DQt5_DIR: 显式指定 Qt5 主 CMake 配置路径lib/cmake/Qt5/Qt5Config.cmake所在-DQt5SerialBus_DIR:最关键——强制指向 SerialBus 模块的 CMake 配置确保find_package(Qt5 COMPONENTS SerialBus REQUIRED)成功-DCMAKE_CXX_STANDARD17: 源码中使用了if constexpr、std::optional等 C17 特性低于此标准编译失败-GNinja: 使用 Ninja 构建系统比 Make 快 3–5 倍错误提示更清晰若 CMake 报错Could NOT find Qt5SerialBus检查路径/opt/Qt/5.15.2/gcc_64/lib/cmake/Qt5SerialBus/Qt5SerialBusConfig.cmake是否存在ls /opt/Qt/5.15.2/gcc_64/lib/cmake/ | grep SerialBus3.3 编译与安装含 Ninja 加速技巧使用 Ninja 编译比make -j$(nproc)更高效ninja -j$(nproc) # 编译成功后安装到系统级路径推荐 /usr/local sudo ninja install安装后文件分布可执行文件/usr/local/bin/candevstudio桌面图标/usr/local/share/applications/candevstudio.desktop图标资源/usr/local/share/icons/hicolor/256x256/apps/candevstudio.png验证安装candevstudio --version # 应输出CANdevStudio v2.4.0 (Qt 5.15.2)注意若执行时报error while loading shared libraries: libQt5SerialBus.so.5: cannot open shared object file说明LD_LIBRARY_PATH未生效或/usr/local/lib未加入系统库路径。临时解决export LD_LIBRARY_PATH/opt/Qt/5.15.2/gcc_64/lib:$LD_LIBRARY_PATH candevstudio永久解决echo /opt/Qt/5.15.2/gcc_64/lib | sudo tee /etc/ld.so.conf.d/qt5152.conf sudo ldconfig4. 首次运行与设备配置从虚拟 vcan 到物理 PCAN 接口的全流程安装完成不等于能用——CANdevStudio 启动后需正确识别 CAN 接口、加载 DBC 文件、配置波特率。物理设备如 PEAK-PCAN USB需额外驱动而虚拟 vcan 是零成本验证入口。4.1 启动并创建虚拟 CAN 接口无硬件也可测# 加载 vcan 模块并创建接口 sudo modprobe vcan sudo ip link add name vcan0 type vcan sudo ip link set up vcan0 # 启动 CANdevStudio candevstudio在 GUI 中操作点击左上角File → New Project命名vcan_test点击Devices → Add Device在弹窗中Backend:socketcanLinux 原生支持Interface:vcan0下拉列表应出现Bitrate:500000500 kbpsvcan 支持任意值点击OK此时设备列表应显示vcan0 (socketcan)状态为Disconnected。点击右侧Connect按钮状态变为Connected。4.2 使用物理 PCAN-USB 设备需 peak-linux-driver若使用 PEAK-System PCAN-USB 设备需单独安装官方驱动# 下载驱动以 2023-05-18 版本为例 wget https://www.peak-system.com/fileadmin/media/files/linux/peak-linux-driver-8.14.0.tar.gz tar -xzf peak-linux-driver-8.14.0.tar.gz cd peak-linux-driver-8.14.0 sudo make clean sudo make sudo make install sudo modprobe pcan # 查看设备节点 ls /dev/pcan* # 通常为 /dev/pcanusb32编号取决于插入顺序在 CANdevStudio 中添加设备Backend:pcanInterface:/dev/pcanusb32或对应设备节点Bitrate: 根据 ECU 要求填写如125000,250000,500000Clock MHz:8PCAN-USB 默认晶振频率提示若连接失败检查dmesg | tail -20是否有pcan_usb_pro: connected日志若提示Permission denied将用户加入plugdev组sudo usermod -a -G plugdev $USER newgrp plugdev # 立即生效组权限4.3 导入 DBC 文件并发送测试报文DBC 是 CAN 通信的“字典”定义报文 ID、信号起始位、长度、缩放因子等。CANdevStudio 支持直接导入.dbc文件。准备一个最小 DBC 示例保存为test.dbcVERSION NS_ : NS_DESC_ CM_ BA_DEF_ BA_DEF_DEF_ VAL_ CAT_DEF_ CAT_ FILTER BA_DEF_DEF_REL_ BA_DEF_REL_ BA_REL_ BU_SG_REL_ BU_EV_REL_ BU_BO_REL_ SG_MUL_VAL_ BS_: BU_: Vector__XXX BO_ 100 EngineData: 8 Vector__XXX SG_ RPM : 0|161 (0.125,0) [0|8000] rpm Vector__XXX SG_ CoolantTemp : 16|81 (1,0) [-40|210] degC Vector__XXX在 CANdevStudio 中Project → Import DBC...选择test.dbc展开左侧Messages找到EngineData (0x64)右键EngineData→Send Message在弹窗中修改RPM值为1200CoolantTemp为95点击Send此时若已连接真实 ECU 或另一台运行candump vcan0的终端应能看到报文vcan0 064 [8] 00 04 B0 00 00 00 00 0000 04 1200 × 0.125 1200符合缩放因子5. 避坑指南五个血泪经验总结的高频翻车点与后悔药CANdevStudio 的报错信息往往藏在 Qt 插件加载黑匣子深处表面报错和真实原因常隔三层。以下是我在三台机器上反复验证的 5 个典型问题每条都附带可立即执行的诊断命令和修复步骤。5.1 现象启动后设备列表为空日志显示QCanBusDevice: No plugins available原因Qt 5.15.2 的canbus插件未被正确加载常见于QT_PLUGIN_PATH未设置或插件文件权限错误。解决# 1. 确认插件存在且可读 ls -l /opt/Qt/5.15.2/gcc_64/plugins/canbus/ # 应看到 libqcanbus.soLinux或 canbus.so权限为 -rwxr-xr-x # 2. 设置插件路径写入 ~/.bashrc export QT_PLUGIN_PATH/opt/Qt/5.15.2/gcc_64/plugins # 3. 验证 Qt 能识别插件 qtdiag | grep -A5 Plugin Paths # 输出中应包含 /opt/Qt/5.15.2/gcc_64/plugins5.2 现象编译时报错fatal error: qcanbus.h: No such file or directory原因CMake 未正确找到Qt5SerialBus模块或qcanbus.h头文件路径未加入 include 目录。解决# 1. 手动确认头文件位置 find /opt/Qt/5.15.2 -name qcanbus.h 2/dev/null # 正常路径/opt/Qt/5.15.2/gcc_64/include/QtSerialBus/5.15.2/QtSerialBus/qcanbus.h # 2. 在 CMake 配置中显式添加 include 路径追加到 cmake 命令末尾 -DCMAKE_INCLUDE_PATH/opt/Qt/5.15.2/gcc_64/include/QtSerialBus/5.15.2/QtSerialBus5.3 现象连接 vcan0 后收不到任何报文candump vcan0也无输出原因vcan 接口未启用或 CANdevStudio 发送缓冲区未刷新。解决# 1. 严格按顺序执行 vcan 初始化 sudo modprobe vcan sudo ip link add dev vcan0 type vcan sudo ip link set up vcan0 # 2. 在 CANdevStudio 中发送报文后点击右上角 **Flush TX Queue**闪电图标 # 3. 若仍无效检查是否启用了 CAN 错误帧过滤GUI 中 Devices → Settings → Filter Error Frames → 取消勾选5.4 现象导入 DBC 后信号值显示0或NaN但报文原始数据正确原因DBC 中信号缩放因子Factor或偏移量Offset为浮点数而 CANdevStudio 默认使用整数解析逻辑。解决# 1. 用文本编辑器打开 DBC检查信号定义行 # 错误写法SG_ CoolantTemp : 16|81 (1.0,0) [-40|210] # 正确写法移除小数点SG_ CoolantTemp : 16|81 (1,0) [-40|210] # 2. 保存 DBC 后在 CANdevStudio 中 Project → Reload DBC5.5 现象使用 PCAN 设备时连接成功但发送报文后candump /dev/pcanusb32无响应原因PCAN 驱动默认启用“只监听”模式Listen Only禁止发送。解决# 1. 查看当前工作模式 cat /sys/class/pcan/pcanusb32/opmode # 输出为 0x00000001 表示 Listen Only # 2. 切换为正常模式需 root echo 0 | sudo tee /sys/class/pcan/pcanusb32/opmode # 3. 重启 CANdevStudio 设备连接6. 验证跑通用一条 DBC 一个 Python 脚本完成闭环测试含信号值校验装完不是终点验证“真能干活”才是。我习惯用一个极简闭环测试CANdevStudio 发送带温度值的报文 → Python 脚本用python-can接收 → 解析 DBC 提取信号 → 校验数值是否匹配。这个流程覆盖了 DBC 导入、信号缩放、物理层收发、跨进程通信全部环节比单纯看界面“连上了”可靠十倍。6.1 准备测试 DBC 与发送配置复用前文test.dbc但增强信号定义增加小数位支持BO_ 100 EngineData: 8 Vector__XXX SG_ RPM : 0|161 (0.125,0) [0|8000] rpm Vector__XXX SG_ CoolantTemp : 16|81 (0.5,0) [-40|210] degC Vector__XXX // Factor0.5发送 190 → 实际 95°C在 CANdevStudio 中导入该 DBC右键EngineData→Send Message设置CoolantTemp 190对应 95°CRPM 2400对应 300 rpm点击Send并确保Auto Repeat关闭避免干扰6.2 编写 Python 接收脚本依赖 python-can cantools创建verify_can.py#!/usr/bin/env python3 import can import cantools import time # 加载 DBC db cantools.database.load_file(test.dbc) # 使用 socketcan 接口vcan0或 PCAN需要 python-can-peaklinux bus can.interface.Bus(channelvcan0, bustypesocketcan) # 若用 PCANbus can.interface.Bus(channel/dev/pcanusb32, bustypepcan) print(Waiting for EngineData message (ID 0x64)...) start_time time.time() while time.time() - start_time 5: # 超时 5 秒 msg bus.recv(timeout1) if msg and msg.arbitration_id 0x64: try: decoded db.decode_message(0x64, msg.data) print(f✅ Received: {decoded}) # 校验关键信号 if abs(decoded[CoolantTemp] - 95.0) 0.1 and abs(decoded[RPM] - 300.0) 0.1: print( Signal values match expected! Test PASSED.) exit(0) else: print(❌ Signal values out of tolerance.) exit(1) except Exception as e: print(f⚠️ Decode error: {e}) continue print(❌ Timeout: No valid EngineData message received.) exit(1)赋予执行权限并运行chmod x verify_can.py ./verify_can.py预期输出Waiting for EngineData message (ID 0x64)... ✅ Received: {RPM: 300.0, CoolantTemp: 95.0} Signal values match expected! Test PASSED.6.3 进阶验证压力测试与信号抖动分析为确认稳定性我常加一段 100 次循环发送接收校验# 在 verify_can.py 末尾追加 def stress_test(): success_count 0 for i in range(100): # 此处触发 CANdevStudio 发送需提前配置 Auto Repeat 或用 API # 实际中可用 DBus 或简单 sleep 模拟 time.sleep(0.05) msg bus.recv(timeout0.5) if msg and msg.arbitration_id 0x64: decoded db.decode_message(0x64, msg.data) if abs(decoded[CoolantTemp] - 95.0) 0.1: success_count 1 print(fStress test: {success_count}/100 messages decoded correctly) stress_test()提示若需自动化触发发送CANdevStudio 提供 HTTP APIhttp://localhost:8080/api/send但需在设置中启用 Web ServerSettings → Network → Enable HTTP Server。这是我在某跨平台系统联调中用熟的方案——用 Python 控制发送节奏用cantools校验精度比肉眼盯界面靠谱太多。从那以后我每次部署新环境都强制走一遍这个verify_can.py闭环测试它不关心你 Qt 装得多漂亮、界面多炫酷只认信号值是否精准落在 DBC 定义的数学空间里。只要它绿了我就敢把这套环境交给 A 同学去做某图像处理 Demo 的 CAN 通信模块。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

PyInstaller打包Python脚本:从依赖收集到发布避坑指南

PyInstaller打包Python脚本:从依赖收集到发布避坑指南

很多人问过一个很实在的问题:Python 脚本写完了,为什么不直接把.py文件发给对方?等你真的经历过目标机器没装 Python、装了 Python 但版本对不上、依赖包装了几次都失败、对方还明确要求"给我一个双击就能跑的程序"这些场景之后&am…

2026/10/19 14:59:35 阅读更多 →
DNS原理、配置与故障排查:从递归查询到BIND实战

DNS原理、配置与故障排查:从递归查询到BIND实战

1. 从一个让人抓狂的故障说起:为什么DNS值得单独拎出来讲刚入行那会儿,我遇到过一个至今印象深刻的故障。一台服务器上的Web服务跑得好好的,本地用IP访问一切正常,但换成域名就时通时不通,重启服务、检查防火墙、翻看日…

2026/10/19 14:59:35 阅读更多 →
软件模拟IIC发送16位寄存器地址:位序、ACK与Restart全解析

软件模拟IIC发送16位寄存器地址:位序、ACK与Restart全解析

年前调试一块板子,主控的硬件IIC接口全被占满,只剩两个空闲GPIO,只能软件模拟IIC。本来以为这活儿轻松,结果在操作一块寄存器地址宽度是16位的器件时,读回来的数据永远是0xFF,逻辑分析仪抓波形又看着一切正…

2026/10/19 14:59:35 阅读更多 →

最新新闻

open-code-review:CLI驱动的开放代码审查范式

open-code-review:CLI驱动的开放代码审查范式

1. “open-code-review”不是工具名,而是正在发生的协作范式迁移 你最近在 GitHub 提交 PR 后,是不是发现评论区里多了一条带 🤖 图标的自动反馈?或者某天早上打开终端, git diff --cached | open-code-review 这行命…

2026/10/19 17:28:05 阅读更多 →
开源CLI代码审查工具:基于Git+本地LLM的自动化Code Review实践

开源CLI代码审查工具:基于Git+本地LLM的自动化Code Review实践

1. 项目概述:一个真正能嵌入日常开发流的开源代码审查 CLI 工具“open-code-review”这个名字乍一听像某个 GitHub 上刚起步的玩具项目,但如果你每天要 review 十几个 PR、在 Git 提交前反复检查边界条件、或者被团队里“这个函数命名太模糊了”这类模糊…

2026/10/19 17:28:05 阅读更多 →
R语言机器学习算法手写实现资源:从线性回归到神经网络

R语言机器学习算法手写实现资源:从线性回归到神经网络

简介:这份资源面向具备一定统计基础、希望用R语言落地机器学习算法的数据分析人员与学生,围绕监督学习与非监督学习两条主线,覆盖线性回归、逻辑回归、支持向量机、决策树、随机森林、梯度提升机、朴素贝叶斯、神经网络以及K-means聚类、关联…

2026/10/19 17:28:05 阅读更多 →
AutoPlait Python实现:无需平滑的时间序列自动分段与聚类

AutoPlait Python实现:无需平滑的时间序列自动分段与聚类

简介:这份资源是AutoPlait(SIGMOD14)的Python实现,面向从事时间序列挖掘、模式发现与变化点检测的研究者与工程师。AutoPlait针对大量共同演化时间序列,能在无参数、无需训练与调参的前提下自动完成分割与摘要&#xf…

2026/10/19 17:28:05 阅读更多 →
Docker容器技术演进:从资源隔离到应用交付的变革

Docker容器技术演进:从资源隔离到应用交付的变革

我最早接触容器这个概念,是被一个部署事故逼的。那时我维护一个内部工具,前后端加定时任务全装在同一台服务器上,依赖互相打架,升级一个库就要重新编译另一个,每次发布都像拆弹。后来团队引入Docker,把每个…

2026/10/19 17:28:05 阅读更多 →
E3神U+P106矿卡变身AI推理建站服务器实战

E3神U+P106矿卡变身AI推理建站服务器实战

坐拥 E3 神U 和 P106 矿卡这两块二手市场的大热门,把这套配置改造成一台集 AI 推理与建站于一体的全能服务器,是很多折腾党都想干的事。E3 的多核生产力在百元价位几乎没有对手,P106 这块被矿潮埋没的显卡又恰好拥有大显存和高吞吐量的底子&a…

2026/10/19 17:27:01 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介:本资源为电源技术方向的学术研究文档,聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略,面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址: https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集,共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/19 10:02:04 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 2:54:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 9:10:22 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →