news 2026/9/24 7:51:07

创芯CAN分析仪兼容周立功CANTest:DLL替换与驱动配置实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
创芯CAN分析仪兼容周立功CANTest:DLL替换与驱动配置实战

1. 项目背景与核心需求拆解

1.1 为什么会有“兼容”这个需求

做汽车电子、工业控制或者嵌入式开发的朋友,对CAN总线调试工具应该都不陌生。周立功的CANTest软件在国内CAN总线调试领域算得上是“国民级”工具,界面简洁、功能稳定,尤其是它的报文收发、滤波、定时发送、总线统计这些功能,很多工程师从入行第一天就在用。但问题在于,周立功原厂的CAN分析仪价格不算便宜,对于预算有限的团队或者个人开发者来说,找一款性价比更高的替代硬件就成了很自然的选择。

创芯科技的CAN分析仪就是在这个背景下进入视野的。硬件层面它支持CAN 2.0A/B协议,支持标准帧和扩展帧,波特率覆盖5K到1Mbps,基本能满足绝大多数常规CAN总线调试场景。但关键问题来了:创芯科技自带的软件功能相对基础,很多工程师已经习惯了CANTest的操作逻辑和功能布局,不想因为换了硬件就重新适应一套新软件。于是就有了这个需求——让创芯科技的CAN分析仪在周立功的CANTest软件里跑起来

这个需求的核心技术点其实就一个:驱动层的DLL替换。周立功的CANTest软件在运行时,会调用一个名为ControlCAN.dll的动态链接库来与硬件通信。这个DLL是周立功定义的接口规范,只要创芯科技能提供一个功能等价、接口兼容的ControlCAN.dll,理论上CANTest就能识别并驱动创芯的硬件。听起来简单,但实际操作中涉及驱动安装、DLL文件替换、设备索引配置、波特率匹配等一系列细节,任何一个环节出问题都会导致软件报错或者设备无法识别。

1.2 适用人群与前置知识

这篇文章主要面向三类读者:第一类是手头有创芯科技CAN分析仪、想用CANTest软件做调试的嵌入式工程师;第二类是预算有限、想用第三方硬件替代原厂工具的学生或个人开发者;第三类是对CAN总线底层通信机制感兴趣、想了解DLL接口兼容原理的技术爱好者。

前置知识方面,你至少需要了解CAN总线的基本概念——什么是标准帧、扩展帧、波特率、终端电阻,以及CANTest软件的基本操作界面。如果你之前用过周立功的CAN盒,那上手会非常快。如果你完全没接触过CAN总线,建议先花半小时了解一下CAN 2.0协议的基本帧结构,否则后面调试时看到报文数据会一头雾水。

注意:整个操作过程中涉及驱动文件的替换和系统目录的写入,建议在操作前对重要数据进行备份,尤其是如果你之前已经安装过周立功原厂驱动的话。

1.3 整体技术路线概览

整个兼容方案的技术路线可以概括为“驱动替换 + 接口适配 + 参数匹配”三步走。第一步是安装创芯科技提供的兼容驱动包,这个包里包含了替换用的ControlCAN.dll文件以及配套的USB设备驱动;第二步是将兼容DLL文件放置到CANTest软件能够加载的目录下,通常是软件安装根目录或者系统System32目录;第三步是打开CANTest,配置设备类型、设备索引、通道号和波特率,让软件正确识别到创芯硬件并建立通信。

这三步里,第一步的坑最多,因为涉及到Windows驱动签名、USB设备识别、驱动版本匹配等问题;第二步相对简单但容易忽略权限问题;第三步看似只是点几个下拉框,但波特率和滤波配置不对的话,会出现“能打开设备但收不到报文”的尴尬情况。后面我会逐一拆解每个环节的细节和避坑经验。

2. 驱动替换的核心原理与操作细节

2.1 ControlCAN.dll到底扮演什么角色

要理解为什么替换一个DLL就能让CANTest驱动第三方硬件,得先搞清楚这个DLL在软件架构里的位置。CANTest软件本身是一个上层应用,它不直接跟USB硬件打交道,而是通过调用ControlCAN.dll里导出的函数来完成设备打开、初始化、报文收发等操作。这些函数的接口定义是周立功公开的,包括VCI_OpenDeviceVCI_InitCANVCI_StartCANVCI_TransmitVCI_Receive等,函数名和参数结构在周立功的官方文档里有详细说明。

创芯科技做的事情,就是按照这套接口规范,重新实现了一个ControlCAN.dll,内部把周立功的函数调用翻译成自己硬件的USB通信协议。所以从CANTest的角度看,它以为自己还在跟周立功的盒子说话,实际上底层已经换成了创芯的硬件。这种“接口兼容”的思路在工业软件领域很常见,本质上是一种二进制层面的适配层

这里有个关键点需要注意:不同版本的CANTest可能依赖不同版本的ControlCAN.dll,函数导出表和结构体定义可能有细微差异。创芯科技提供的兼容DLL通常是针对某个主流CANTest版本做的适配,如果你用的CANTest版本太新或太旧,可能会出现函数找不到或者参数不匹配的问题。我实测下来,CANTest 2.0系列和创芯的兼容DLL配合得比较好,更新版本可能需要联系创芯的技术支持获取对应的DLL。

2.2 驱动安装的完整流程

驱动安装是整个过程中最需要耐心的环节。创芯科技的CAN分析仪通常使用USB接口,内部有一颗USB转CAN的桥接芯片。Windows系统需要安装对应的USB设备驱动,才能让硬件在设备管理器里被正确识别。

具体操作步骤是这样的:先把CAN分析仪通过USB线连接到电脑,此时设备管理器里会出现一个未知设备或者带黄色感叹号的设备。然后找到创芯科技提供的驱动安装包,里面一般包含一个inf文件和一个sys文件。右键点击未知设备,选择“更新驱动程序”,然后手动指向驱动包所在的文件夹。安装过程中Windows可能会弹出“无法验证此驱动程序软件的发布者”的警告,这是因为驱动没有经过微软的数字签名认证。选择“始终安装此驱动程序软件”即可继续。

安装完成后,设备管理器里应该能看到一个“USB-CAN Device”或者类似的设备名称,没有黄色感叹号。这时候你可以用创芯自带的测试软件先验证一下硬件是否正常工作——打开设备、设置波特率、发送一帧报文,如果能正常收发,说明驱动层没问题。

实操心得:如果驱动安装后设备管理器里仍然有感叹号,先检查USB线是不是只供电不传数据的那种“充电线”。我遇到过好几次,换了三根线才发现是线的问题。另外,Windows 10和Windows 11对未签名驱动的容忍度不同,Win11可能需要临时禁用驱动签名强制才能安装成功。

2.3 DLL文件替换的正确姿势

驱动装好之后,接下来就是把创芯提供的ControlCAN.dll放到正确的位置。这里有两种做法,各有优劣。

第一种做法是替换CANTest安装目录下的DLL。找到CANTest的安装路径,通常在C:\Program Files (x86)\ZLG\CANTest或者类似目录下,里面会有一个ControlCAN.dll文件。把它重命名为ControlCAN.dll.bak作为备份,然后把创芯提供的DLL复制进去。这种做法的好处是不影响系统其他软件,只对CANTest生效;缺点是如果CANTest升级或者重装,DLL会被覆盖回去,需要重新替换。

第二种做法是替换系统目录下的DLL。把创芯的ControlCAN.dll复制到C:\Windows\System32目录下(64位系统可能还需要放到SysWOW64)。这种做法的好处是全局生效,任何调用ControlCAN.dll的软件都会用到创芯的版本;缺点是可能影响周立功原厂软件的正常使用,如果你同时还有周立功的硬件,就会冲突。

我个人推荐第一种做法,因为更干净、更可控。替换之前一定要备份原文件,这个习惯能帮你省去很多重装软件的麻烦。替换完成后,建议重启一下CANTest软件,确保新的DLL被加载。

2.4 设备索引与通道号的配置逻辑

DLL替换完成后,打开CANTest软件,你会看到设备类型、设备索引、通道号这几个下拉框。设备类型一般选择USBCAN-2或者USBCAN-1,具体选哪个取决于创芯硬件的通道数量。设备索引是指同一台电脑上有多台同类型设备时的编号,如果你只接了一台,选0就行。通道号是指硬件上的第几路CAN通道,单通道设备选0,双通道设备可以选0或1。

这里有个容易踩的坑:有些创芯的硬件在兼容模式下,设备索引和通道号的映射关系跟周立功原厂不完全一样。比如周立功的双通道盒子,通道0和通道1是独立的;但某些创芯硬件在兼容DLL里可能把两个通道映射成了设备索引0的通道0和通道1,也可能映射成了设备索引0和1的各一个通道。如果你打开设备时提示“设备不存在”或者“打开设备失败”,可以尝试调整设备索引和通道号的组合,多试几次通常能找到正确的映射。

波特率的设置也需要跟总线上其他节点保持一致。CAN总线的波特率是通信速率,常见的有125K、250K、500K、1M等。如果CANTest里设置的波特率跟总线上实际的不一致,会出现“能打开设备但收不到任何报文”或者“总线错误帧大量增加”的情况。我一般会先用示波器或者已知正常的节点确认总线波特率,然后再在CANTest里设置。

3. 实操过程与核心环节实现

3.1 环境准备与文件清单

在开始操作之前,先把需要的东西准备齐全。硬件方面:创芯科技CAN分析仪一台、USB数据线一根、待调试的CAN总线或者CAN节点一个。软件方面:创芯科技提供的驱动安装包(包含USB驱动和兼容ControlCAN.dll)、周立功CANTest软件安装包(建议用2.0系列版本)、一台Windows电脑(Win7/Win10/Win11都可以,但不同系统版本的操作细节略有差异)。

文件清单里最重要的是两个东西:一个是ControlCAN.dll,这个文件通常包含在创芯的驱动包或者SDK包里;另一个是USB设备的inf驱动文件。有些创芯的驱动包里还会附带一个readme.txt或者安装说明.pdf,里面会写明DLL的版本号和适配的CANTest版本,这个信息很重要,建议先读一遍。

提示:如果你手头没有创芯的驱动包,可以去创芯科技的官网下载页面找“CAN分析仪驱动”或者“USBCAN驱动”相关的下载项。下载时注意区分32位和64位版本,虽然CANTest通常是32位程序,但USB驱动需要跟系统架构匹配。

3.2 驱动安装的实操记录

我以Windows 10 64位系统为例,记录一下完整的驱动安装过程。先把CAN分析仪插上USB口,打开设备管理器,在“其他设备”下面会看到一个带黄色感叹号的“未知设备”。右键选择“属性”,切换到“详细信息”标签页,在“属性”下拉框里选择“硬件ID”,记下VIDPID的值,比如VID_1234&PID_5678。这个信息在手动安装驱动时可能会用到。

然后右键点击未知设备,选择“更新驱动程序”,选择“浏览我的电脑以查找驱动程序”,指向创芯驱动包解压后的文件夹。如果驱动包里有多个inf文件,Windows可能会让你选择,一般选名字里带USB或者CAN的那个。安装过程中如果弹出安全警告,选择“始终安装”。安装完成后,设备管理器里会出现一个新的设备类别,比如“创芯科技USB-CAN Device”或者类似的名称,设备状态显示“这个设备运转正常”。

这时候可以打开创芯自带的测试软件,看看能不能识别到设备。如果能识别,说明USB驱动层已经通了。如果识别不到,检查一下设备管理器里有没有未知设备残留,或者换一个USB口试试。有些电脑的USB 3.0口对这类设备的兼容性不如USB 2.0口,换口有时候能解决问题。

3.3 DLL替换与CANTest配置

驱动装好之后,找到CANTest的安装目录。如果你不确定装在哪里,可以在开始菜单里找到CANTest的快捷方式,右键选择“打开文件位置”,就能跳到安装目录。目录里应该能看到CANTest.exeControlCAN.dll这两个文件。先把ControlCAN.dll复制一份备份,改名为ControlCAN.dll.bak,然后把创芯提供的ControlCAN.dll复制进来。

复制的时候可能会提示“目标文件夹访问被拒绝”,这是因为Program Files目录需要管理员权限。解决方法是右键点击文件资源管理器,选择“以管理员身份运行”,然后再执行复制操作。或者把DLL先复制到桌面,再用管理员权限的命令行工具copy过去。

替换完成后,打开CANTest软件。在设备选择界面,设备类型选择USBCAN-2(如果是双通道)或者USBCAN-1(单通道),设备索引选0,通道号选0。点击“打开设备”,如果一切正常,软件底部的状态栏会显示“设备已打开”或者类似的提示。如果提示“打开设备失败”,先检查DLL是不是放对了位置,再检查设备索引和通道号的组合。

3.4 波特率计算与参数匹配

波特率设置是CAN通信里最容易被忽视但又最关键的一环。CAN总线的波特率不是随便设的,它跟总线上的晶振频率、分频系数、时间段参数都有关系。以常见的500Kbps为例,如果CAN控制器的时钟是8MHz,那么波特率 = 时钟频率 / (分频系数 × (1 + TSEG1 + TSEG2))。假设分频系数为1,TSEG1为14,TSEG2为1,那么波特率 = 8M / (1 × (1 + 14 + 1)) = 500K,正好匹配。

在CANTest里,波特率通常是一个下拉框,直接选500K就行,软件会自动计算内部参数。但如果你用的是非标准波特率,比如某些特殊场景下的83.3K或者100K,可能需要在高级设置里手动调整时间段参数。我建议先用标准波特率测试,确认通信正常后再尝试非标准值。

设置好波特率后,点击“启动CAN”按钮。如果总线上有其他节点在发送报文,CANTest的接收窗口里应该能看到数据滚动。如果看不到任何数据,先确认总线两端有没有接120欧姆的终端电阻——这是CAN总线的物理层要求,没有终端电阻的话,信号反射会导致通信失败。很多新手会忽略这一点,以为是软件问题,其实是硬件没接对。

3.5 收发测试与验证方法

设备打开、波特率设置完成后,就可以做收发测试了。最简单的验证方法是“自发自收”:把CAN分析仪的两个通道(如果是双通道设备)用杜邦线连起来,通道0的CAN_H接通道1的CAN_H,CAN_L接CAN_L,然后在CANTest里让通道0发送一帧标准帧,看通道1能不能收到。如果能收到,说明硬件和软件都工作正常。

如果没有双通道设备,也可以接一个已知正常的CAN节点,比如另一个CAN分析仪或者一个CAN温湿度传感器。让对端节点周期性发送报文,看CANTest能不能收到。收到报文后,检查一下帧ID、数据长度、数据内容是否跟预期一致。如果帧ID对不上,可能是滤波设置的问题;如果数据内容不对,可能是字节序或者数据格式的问题。

发送测试的时候,注意CANTest的发送窗口里可以设置帧类型(标准帧/扩展帧)、帧格式(数据帧/远程帧)、帧ID和数据。发送成功后,接收窗口里应该能看到自己发的报文(如果总线上有回环或者有其他节点转发)。如果发送失败,检查一下总线是不是处于“总线关闭”状态,这通常是因为波特率不匹配或者总线短路导致的。

3.6 滤波与定时发送的高级配置

CANTest的滤波功能可以让你只接收特定ID范围的报文,这在总线负载很高的时候特别有用。滤波设置一般在“接收设置”或者“滤波设置”对话框里,可以设置起始ID和结束ID,只有在这个范围内的报文才会被接收并显示。我一般会把滤波范围设得稍微宽一点,避免漏掉关键报文,等确认通信正常后再缩小范围。

定时发送功能可以让你以固定周期发送报文,这在模拟ECU节点或者做压力测试时很有用。在发送窗口里设置好报文内容后,勾选“定时发送”,设置周期(比如100ms),点击“发送”后软件就会自动周期性地发送这帧报文。定时发送的精度取决于Windows系统的定时器精度,一般在毫秒级,对于大多数调试场景够用了。如果需要更高精度的定时发送,可能需要用硬件定时或者实时操作系统。

4. 常见问题与排查技巧实录

4.1 设备打开失败的五种原因

“打开设备失败”是替换DLL后最常见的问题,根据我的经验,原因通常有以下五种:第一种是DLL文件没有放对位置,CANTest加载的还是原来的周立功DLL,而原来的DLL找不到创芯的硬件;第二种是USB驱动没有安装成功,设备管理器里还有未知设备;第三种是设备索引和通道号选错了,比如单通道设备选了通道1;第四种是CANTest版本跟兼容DLL不匹配,函数导出表对不上;第五种是USB线接触不良或者供电不足。

排查的时候可以按照这个顺序来:先看设备管理器里硬件是否正常识别,再看CANTest目录下的DLL文件修改日期是不是你替换的那个,然后尝试不同的设备索引和通道号组合,最后换一根USB线或者换一个USB口。如果都不行,联系创芯的技术支持,确认你的CANTest版本和DLL版本是否匹配。

4.2 能打开设备但收不到报文的排查思路

设备能打开但收不到报文,说明DLL替换和驱动安装都没问题,问题出在通信参数或者物理层。首先检查波特率是否跟总线一致,这是最常见的原因。其次检查终端电阻,CAN总线两端各需要一个120欧姆的电阻,如果总线上只有你一个节点,需要在CAN_H和CAN_L之间接一个120欧姆电阻。然后检查CAN_H和CAN_L有没有接反,虽然CAN控制器有反接保护,但接反了肯定通信不了。

如果物理层和波特率都没问题,检查一下CANTest的滤波设置。有时候滤波范围设得太窄,把总线上的报文都过滤掉了,看起来就像收不到数据。把滤波范围设成0到0x7FF(标准帧)或者0到0x1FFFFFFF(扩展帧),看看能不能收到。另外,有些CAN分析仪在兼容模式下只支持“正常模式”,不支持“只听模式”或者“回环模式”,如果你选了这些特殊模式,可能收不到数据。

4.3 报文发送失败的典型场景

发送失败通常有几种表现:点击发送后没有任何反应、提示“发送失败”、或者发送计数器不增加。第一种情况可能是发送窗口没有正确配置,比如帧ID没填、数据长度设为0但实际发了8个字节。第二种情况可能是总线处于“总线关闭”状态,这通常是因为之前波特率不匹配导致错误帧累积过多,CAN控制器自动关闭了总线。解决方法是重新启动CAN或者重新打开设备。

第三种情况可能是硬件不支持某些帧类型。比如某些创芯的硬件在兼容模式下不支持远程帧或者扩展帧,如果你发送这些类型的帧就会失败。我遇到过一款创芯的盒子,标准数据帧没问题,但扩展帧怎么都发不出去,后来换了另一款型号才解决。所以如果你需要扩展帧功能,购买前最好跟创芯的技术支持确认一下兼容性。

4.4 常见问题速查表

问题现象可能原因排查方法解决措施
打开设备失败DLL未替换或位置错误检查CANTest目录下DLL修改日期重新替换DLL,确保管理员权限
打开设备失败USB驱动未安装设备管理器查看是否有未知设备手动安装创芯USB驱动
打开设备失败设备索引/通道号错误尝试不同索引和通道组合单通道选0,双通道选0或1
收不到报文波特率不匹配确认总线实际波特率设置一致的波特率
收不到报文终端电阻缺失测量CAN_H和CAN_L间电阻接120欧姆终端电阻
收不到报文滤波设置过窄检查滤波范围扩大滤波范围或关闭滤波
发送失败总线关闭状态查看总线状态寄存器重新启动CAN或重新打开设备
发送失败帧类型不支持确认硬件兼容性换用支持的帧类型或联系技术支持
数据错误字节序问题对比发送和接收数据调整数据字节序
定时发送不准系统定时器精度测量实际发送周期降低周期或使用硬件定时

4.5 独家避坑经验分享

第一个坑是驱动签名问题。Windows 10和Windows 11对未签名驱动的限制越来越严,有些创芯的老版本驱动在Win11上根本装不上。解决办法是临时禁用驱动签名强制:按住Shift键点击“重启”,进入高级启动选项,选择“禁用驱动程序强制签名”,然后重新安装驱动。注意这个设置只在本次启动有效,重启后会恢复。

第二个坑是DLL版本混乱。如果你电脑上装过多个版本的CANTest或者多个厂家的CAN工具,系统里可能存在多个ControlCAN.dll文件。Windows加载DLL时有个搜索顺序:先找程序目录,再找系统目录,再找环境变量PATH里的目录。所以即使你替换了CANTest目录下的DLL,如果系统目录里还有一个旧版本的DLL,可能会被优先加载。解决方法是把系统目录里的旧DLL也替换掉,或者用工具查看CANTest实际加载的是哪个DLL。

第三个坑是USB供电不足。有些创芯的CAN分析仪功耗比较大,如果接在USB Hub上或者用了劣质的USB延长线,可能会出现设备识别不稳定、频繁掉线的情况。我建议直接插在电脑主板上的USB口,不要用Hub,也不要用太长的延长线。如果必须用延长线,选带屏蔽和供电增强的那种。

第四个坑是波特率容错。CAN总线的波特率有一定的容错范围,但不同厂家的硬件容错能力不一样。周立功的原厂盒子容错范围比较宽,波特率偏差个百分之几也能通信;但某些创芯的硬件容错范围比较窄,波特率稍微偏一点就通信失败。如果你发现波特率设成标准值还是收不到数据,可以尝试微调波特率,比如把500K改成495K或者505K试试。

4.6 性能优化与稳定性建议

如果你需要长时间运行CANTest做数据记录,有几个优化建议可以提升稳定性。第一是关闭Windows的USB选择性暂停功能,在电源选项里把“USB设置”下的“USB选择性暂停设置”改为“已禁用”,防止系统为了省电而暂停USB设备。第二是增大CANTest的接收缓冲区,在软件设置里把接收缓冲区大小从默认的1000帧调到10000帧,避免高速总线数据量太大导致丢帧。

第三是定期清理接收窗口的报文,如果接收窗口里积累了太多报文,软件的内存占用会越来越高,可能导致卡顿甚至崩溃。可以设置自动清屏或者定期手动清屏。第四是用屏蔽双绞线连接CAN总线,尤其是在电磁环境复杂的工业现场,屏蔽线能有效减少干扰导致的错误帧。屏蔽层单端接地即可,不要两端都接地,否则会形成地环路。

4.7 兼容性扩展与替代方案

如果你发现创芯的兼容DLL在某些功能上确实无法满足需求,比如不支持CAN FD、不支持高精度时间戳、不支持多通道同步采集,可以考虑几个替代方案。一是用创芯自带的软件,虽然界面不如CANTest友好,但功能支持更完整;二是用开源的CAN调试工具,比如cangaroo或者BUSMASTER,这些工具支持多种硬件接口,可以通过插件或者自定义DLL来适配创芯硬件;三是用Python或者C#自己写一个上位机,直接调用创芯提供的SDK接口,灵活性最高但开发成本也最大。

对于大多数常规调试场景,CANTest加创芯硬件的组合已经够用了。我用了大半年时间,主要做汽车ECU的报文分析和诊断测试,稳定性没问题,唯一遇到的就是扩展帧发送偶尔失败,后来确认是硬件型号不支持,换了一款支持扩展帧的型号就解决了。所以如果你有扩展帧或者CAN FD的需求,购买前一定要确认硬件的兼容性列表。

最后分享一个小技巧:替换DLL之前,先用Dependency Walker或者dumpbin工具查看一下CANTest依赖的ControlCAN.dll导出了哪些函数,然后跟创芯DLL的导出表对比一下。如果函数列表完全一致,兼容性基本没问题;如果有缺失的函数,CANTest在调用到那个功能时就会崩溃。这个检查花不了几分钟,但能帮你提前避开很多坑。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/24 7:49:00

计算机网络课后答案高效利用:从对答案到建错题索引

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

作者头像 李华
网站建设 2026/9/24 7:46:39

充电桩通信模块三重设计:PWM/PLC/CAN协同与鲁棒性实战

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

作者头像 李华
网站建设 2026/9/24 7:42:17

RK3588嵌入式部署大模型:NPU+Ollama实战指南

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

作者头像 李华
网站建设 2026/9/24 7:38:39

基于RK3588的8K全景相机:多路采集、NPU拼接与8K编码全链路实践

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

作者头像 李华