简介《CANopen快速调试手册》是一份面向CANopen接口电机调试初学者与工程人员的PDF操作指南围绕意优CanOpenDemo上位机与第三方CANPro协议分析平台两条调试路径展开帮助读者解决USBCAN设备连接、电机控制、参数读写与通信排查等实际问题。压缩包内仅含1个PDF文件约767KB篇幅精炼按“打开设备—操作电机—参数查看—数据收发调试”和“CANPro快速调试”组织内容配有接线与界面示意适合随查随用。已有196人学习说明其在CANopen电机调试入门场景中具有一定参考价值。手册具体覆盖1000K波特率连接、轨迹位置模式下的加减速与目标位置设置、SDO手动调试及调试命令表导入并提示多电机扫描与PDO默认配置差异能帮助读者快速建立调试流程、理解PDO/SDO操作并减少现场排错时间。1. 从一台不转的电机说起这份手册到底解决哪几个现场问题一台CANopen接口电机摆在台架上24V正常、CAN线也接了上位机却打不开设备或者能打开但电机不按目标位置走——这是现场最常见的两类卡点。这份CANopen快速调试手册把CanOpenDemo上位机和CANPro协议分析平台两条调试路径放在一起前者负责快速打开设备、扫描节点、操作电机和看SDO收发后者负责绕开上位机自动配置PDO的干扰用命令表手工下发。它适合刚接手CANopen电机调试的工程师也适合已经会用第三方CAN分析仪、但被PDO映射和节点ID搞混的熟手。读的时候别只盯按钮先把接线、波特率、对象字典和状态机四件事对齐后面才少踩坑。2. 把USBCAN接进CANopen链路从120Ω终端到1000K波特率打开设备2.1 先分清USBCAN、CANopen主站和电机从站的角色很多新手一上来就把USBCAN当成“CANopen主站”这个理解会直接影响排错方向。USBCAN本质上是USB转CAN的物理层适配器它负责把电脑上的USB数据转成CAN_H/CAN_L差分信号真正发SDO、收PDO、走NMT状态机的是电脑里的上位机。CanOpenDemo在这套链路里扮演CANopen主站电机是从站节点ID决定帧ID偏移。常见做法是主站发SDO请求用0x600NodeID从站回SDO响应用0x580NodeID心跳或节点监控再占一组ID。把这个关系记住后面看到“帧能发出去但没有响应”就不会只怀疑USB线。选CanOpenDemo而不是一上来就用第三方分析仪理由很实际它打开设备后会默认设置电机相关PDO并读取全部字典数据相当于把从站的对象字典先摸一遍。对第一次接手的电机这一步能快速确认“电机是不是活的、节点ID是不是对的、字典能不能读”。代价是它会改写PDO配置这也是后面用CANPro时要单独避坑的原因。熟手如果只想发几条SDO看状态可以直接走第三方平台但要做整机联调先用CanOpenDemo把链路跑通更稳。2.2 接线与供电检查24V、CAN_H/CAN_L、120Ω终端电阻手册里的接线顺序不复杂但现场翻车大多出在“电供了、线通了、终端电阻没开”或者“CAN_H和CAN_L接反”。先把USBCAN的USB端插到电脑CAN1口接到电机CAN口电源按手册标出的24V端子接好如PH08/PH11具体以板号丝印为准。一组120Ω终端电阻要打开通常是在总线两端各一个短距离台架调试只开一组也能跑但长线或多节点时不要省。CAN_H对CAN_H、CAN_L对CAN_L地线是否共地看现场台架上建议共地减少共模干扰。下面这张检查表可以照着走每一步都别跳检查项正确状态常见错误现象USB驱动设备管理器无感叹号驱动未装或装错上位机打不开设备供电24V实测在端子处只量电源指示灯电机不使能、报欠压CAN_H/CAN_L与电机端子一一对应反接无响应或错误帧终端电阻总线两端120Ω一组都没开短线上偶发长线必挂波特率与从站一致默认1000K主站从站不一致打开设备成功但扫描不到节点ID多电机不重复两个电机同ID扫描冲突、响应错乱供电这里有个细节手册写PH08/PH11为24V供电现场最好用万用表在端子处量而不是只看电源模块灯亮。电机驱动器内部逻辑电和功率电可能分开逻辑电没起来时USB-CAN能打开但SDO读字典会超时。CAN_H/CAN_L反接不一定会烧但差分电平反了仲裁和应答都会异常表现就是“设备打开成功、报文发得出去、就是没有从站响应”。终端电阻用万用表断电测CAN_H与CAN_L之间约60Ω两个120Ω并联只能判断大致单端测量时别把表笔当诊断结论。2.3 打开设备与扫描节点1000K波特率、驱动、PDO初始化接线检查完再开CanOpenDemo。点击“打开设备”默认选1000K波特率即可前提是电机从站也是1000K。如果打开设备不成功按顺序查USBCAN驱动是否安装、USB口是否被其他上位机占用、CAN1口是否选错、设备是否被别的进程打开。打开成功后软件会自动设置电机相关PDO并读取全部字典数据这一步需要等不要急着点“操作电机”。多电机连接时点“扫描”刷新电机ID再选择要操作的电机如果扫描不到先确认节点ID是否重复、终端电阻是否打开、波特率是否一致。这里有个容易忽略的边界CanOpenDemo打开设备后做的PDO配置是“默认动作”它不问你当前电机里存的是什么映射。台架上只有一台电机时无所谓换到客户已有配置的整机上可能把原来的PDO映射覆盖掉。我的习惯是第一次接新电机先用CanOpenDemo读一遍字典并记录关键对象0x6040、0x6041、0x6060、0x6061、0x607A、0x6064、0x6081、0x6083、0x6084再决定要不要让它自动配PDO。如果客户明确说“PDO已经调好不要动”那就直接走第5章的CANPro命令表路径别用上位机的自动初始化。打开设备后还要看一个信号字典读取是否完整。如果读到一半报错常见原因是SDO超时、节点ID不对、从站不支持某个对象。此时不要反复点“打开设备”先把CANPro或数据收发页打开看最后一帧SDO请求和响应。CanOpenDemo的“数据收发”页就是干这个用的它能直观看到上位机同电机的通信数据也能手动发SDO。把这一页当黑匣子用比猜“是不是电机坏了”有效得多。3. 轨迹位置模式怎么落地5308416脉冲一圈下的速度、加减速与绝对/相对位置3.1 先算清脉冲当量一圈5308416脉冲意味着什么手册给了一个很关键的出厂参数电机默认一圈5308416个脉冲。这个数先别急着背把它变成脉冲当量才有用。一圈360度时5308416÷360≈14745.6脉冲/度如果目标位置写1000000理论上走1000000÷5308416≈0.1884圈约67.8度。这个换算决定了你填目标位置时心里有没有数而不是“填个1000000看它转不转”。不同电机的编码器分辨率和传动比不同换电机第一件事就是确认这个“一圈多少脉冲”别拿上一台的参数直接套。速度参数也一样。手册示例把速度设成1000000目标位置设成1000000。如果对象0x6081的单位是脉冲/秒那么1000000脉冲/秒≈0.1884圈/秒≈11.3转/分如果厂商把它做成内部标幺或rpm算法就不同。常见做法是先在低速度、短距离下试读0x6064实际位置看走了多少再反推单位。不要一上来就满速满行程机械限位和减速比没确认时很容易撞限位。加减速参数0x6083/0x6084同理先给一个保守值确认电机能平稳起停再往上加。3.2 绝对位置与相对位置目标位置1000000时电机实际走多少轨迹位置模式下目标位置填1000000如果不勾“相对位置”电机运行到绝对位置1000000处如果勾选相对位置电机在当前位置基础上加1000000的增量。这个差别在连续点动时特别明显绝对模式每次都给同一个坐标电机可能只动一点点甚至不动相对模式每次累加适合做增量进给。现场调试时我一般先回零或记录当前0x6064再用绝对模式走一个已知角度读回0x6064核对最后才切相对模式。从CANopen角度看绝对/相对不是上位机自己算的通常落在控制字或模式控制位里。CiA 402轮廓位置模式常见做法是0x60601控制字0x6040的bit6区分绝对/相对bit4置新设定点bit5决定是否立即更新。不同厂商的命令表可能封装了这些位CanOpenDemo勾选框背后就是替你拼控制字。熟手如果走CANPro不能只发0x607A目标位置还要把0x6040的控制字序列走对否则电机收到目标位置也不会动。这个点在第五章的踩坑记录里还会展开。3.3 速度与加减速参数怎么设1000000不是“转/分”把速度、加减速、目标位置三个参数放在一起看才不会互相打架。假设0x6081单位是脉冲/秒目标位置1000000速度1000000理论上1秒走完但如果加减速设得很大实际会迅速到速然后急停机械上会有冲击。常见做法是先设目标位置为一个小角度比如0.1圈约530841脉冲速度给额定值的20%30%加减速给一个能让电机在0.20.5秒内到速的值观察启停是否平稳再逐步放大。手册示例的1000000/1000000适合空载短距离验证不代表所有负载都能直接抄。参数表可以按下面这样记录换电机时直接对照避免“上次能跑这次不能跑”对象含义示例值调试建议0x6060运行模式1轮廓位置先写模式再使能0x607A目标位置1000000先小角度验证0x6081速度1000000确认单位是脉冲/秒还是rpm0x6083加速度按负载给先保守后放大0x6084减速度按负载给急停场景单独验证0x6064实际位置读回值用来反推脉冲当量0x6041状态字按位解析判断是否使能、是否到位还要注意“到位”不是看目标位置写完就算完。状态字0x6041里有目标到达位、设定点确认位具体位定义按厂商手册。CanOpenDemo的界面会把状态翻译成人能看的文字但走CANPro时得自己看位。我的习惯是每次改完速度或加减速都读一次0x6064和0x6041确认位置真的到了、状态真的稳再继续下一组参数。否则参数表上写“能跑”换台电机就复现不了。3.4 从使能到运行的状态机检查电机不转先别怀疑目标位置。CANopen驱动器有状态机上电后是Switch on disabled给控制字0x0006做Shutdown再给0x0007做Switch on再给0x000F做Enable operation故障时要给0x0080复位。CanOpenDemo的操作区域替你走了这些序列但数据收发页能看到控制字变化。如果只写了0x6060和0x607A没走使能序列电机保持不动是正常行为不是通信坏了。现场用CANPro时命令表里通常会把这几步拆开每步之间留几十毫秒别把0x0006、0x0007、0x000F连成一串发。状态机检查可以按这个顺序读0x6041确认当前状态写0x6060选择模式写0x60400x0006等状态字变化写0x60400x0007再等写0x60400x000F读0x6041确认Operation enabled最后给目标位置和速度。每一步都读一次状态字比一次性发完再猜哪里失败更省时间。血泪经验是很多“电机不转”最后发现是控制字停在0x0007根本没进0x000F目标位置写得再对也没用。4. 参数读写与SDO数据收发把“能转”变成“可控、可复现”4.1 参数设置页读写对象字典的边界CanOpenDemo切到“参数设置”页可以对电机参数做读写。这里的“参数”本质是CANopen对象字典里的索引/子索引不是随便填的文本框。读操作走SDO上传写操作走SDO下载每次读写都是一问一答。页面上能读到不代表能随便写有些对象是只读的比如0x1000设备类型、0x1018身份对象有些对象写下去要重新上电或重新使能才生效有些对象受厂商保护。常见做法是先读后写写之前把原值记下来写完读回确认别把“写成功”当成“已生效”。参数设置页最适合做三件事确认节点ID和波特率相关对象、记录电机关键参数、对比两台电机配置。比如读0x1018能确认厂商ID、产品代码、修订号和序列号换电机时先读这个避免拿错命令表。读0x6041看状态字读0x6061看当前模式读0x6064看实际位置。写操作先拿0x6060模式字练手写1再读回确认SDO下载正常再去写目标位置和速度。不要一上来就写0x1010保存参数或恢复出厂那些对象一写下去前面调的PDO可能全变。4.2 数据收发页看什么SDO请求、响应与错误码“数据收发”页是整套手册里最值得花时间的界面。它把上位机和电机的CAN帧摊开给你看手动SDO也在这里发。看帧先看三样帧ID、数据长度、命令字。SDO请求帧ID通常是0x600NodeID响应是0x580NodeID数据8字节里第1字节是命令字第2、3字节是索引低/高第4字节是子索引后4字节是数据。读请求命令字常见0x40读响应成功常见0x43/0x4B/0x4F按数据长度写请求按长度用0x2F/0x2B/0x23写响应成功是0x60异常是0x80。字节序是小端索引0x6041在报文里是41 60。下面这张表可以贴在工位上手动发SDO时直接对照操作帧ID数据示例说明读0x60410x60140 41 60 00 00 00 00 00节点1读2字节状态字读响应0x5814B 41 60 00 XX XX 00 00命令字4B表示2字节数据写0x606010x6012F 60 60 00 01 00 00 001字节写模式1写响应0x58160 60 60 00 00 00 00 00写成功异常响应0x58180 60 60 00 XX XX XX XX看错误码定位错误码别只看“失败”两个字。0x06020000常见是对象不存在0x06010000是访问不支持0x08000000系列跟参数有关。现场遇到0x80响应先把索引、子索引、数据长度对一遍再看电机是否处于不支持该操作的状态。比如在使能状态下写某些模式对象可能被拒绝先禁能再写。数据收发页的好处是你能看到请求和响应成对出现而不是只看界面弹窗。4.3 导入调试命令表的正确姿势手册提到可以导入提供的调试命令表快速调试。命令表本质是一串预设好的SDO帧或步骤省去手工拼索引。导入前先确认三件事节点ID是否匹配、波特率是否一致、命令表里的对象字典是否对应这台电机。不同厂商的对象字典可能有差异尤其是厂商自定义区0x2000以后。命令表里如果带延时别嫌慢SDO是一问一答连续发太快会丢响应。常见做法是先单步执行前几条看响应正常再批量跑批量跑完读一次0x6041和0x6064确认最终状态。命令表导入后如果第一条成功、后面失败优先查延时和节点ID。有些表默认节点1实际电机是节点2第一条读0x1000可能广播或刚好命中后面写0x6060就超时。还有一种情况表里先配PDO再发SDOPDO配置失败但界面不报后面依赖PDO的步骤全挂。我的做法是把命令表拆成“只读探测”“使能序列”“运动参数”“保存/复位”四段一段一段跑每段结束读状态字。这样出问题能定位到段不用从头再来。4.4 用SDO做最小闭环验证最小闭环不需要电机转先把“读得到、写得进、状态对”跑通。顺序可以是读0x1000确认设备存在读0x1018确认身份读0x6041确认状态字写0x60601并读0x6061确认模式写0x6040走使能序列读0x6041确认Operation enabled写一个很小的目标位置和低速读0x6064看是否变化最后写0x60400x0000或禁用。这一套跑完通信链路、对象字典、状态机三件事都验证了再去调轨迹参数才有意义。最小闭环里最容易被跳过的是“读回确认”。写0x60601响应0x60只代表从站收到了不代表模式切过去了读0x6061才是当前模式。写目标位置0x607A读0x607A能确认写入值读0x6064才能确认电机实际位置。现场时间紧的时候我至少保留“写模式读模式、写控制字读状态字、写目标位置读实际位置”这三对。把这三对做成固定步骤换电机时只改节点ID和对象地址调试会快很多。5. CANPro协议分析平台避坑PDO被改写、节点ID冲突与报文时序5.1 为什么CanOpenDemo能转CANPro发同样命令却不生效CanOpenDemo和CANPro最大的差别不是“谁更专业”而是初始化责任落在谁身上。CanOpenDemo打开设备后会默认配置电机相关PDO并读取全部字典数据相当于替你把通信参数和映射先铺好CANPro是第三方协议分析平台它不会自动配PDO你发什么它发什么。于是现场常见一幕同一台电机CanOpenDemo点一下就能转换CANPro发同样的0x6060、0x607A却不生效。原因通常不是CANPro不行而是少了PDO配置、少了使能序列或者节点ID/帧ID没对上。用CANPro的正确姿势是把它当“手工主站”命令表当脚本。先确认电机当前PDO映射是不是被CanOpenDemo改过如果不确定读0x14000x1403通信参数和0x16000x1603映射参数或者直接重新上电让从站回到保存的配置。然后按SDO一问一答走读身份、读状态、写模式、走使能、写目标。不要试图用一条PDO把使能、模式、位置全带下去除非你确认映射和状态机都允许。CANPro的优势是灵活代价是每一步都要自己负责。5.2 用命令表手工下发SDO索引、子索引、数据长度要对齐手工下发SDO最容易错的是数据长度。写1字节用0x2F写2字节用0x2B写4字节用0x23读请求统一0x40读响应看命令字判断回了几字节。索引低字节在前比如0x607A在报文里是7A 600x6041是41 60。节点ID决定帧ID节点1的请求是0x601响应是0x581节点2就是0x602/0x582。命令表里如果写死0x601换节点必须改不能只改界面上的ID下拉框。下发节奏也要对齐。SDO是确认型服务发一条请求要等响应再发下一条。命令表里常见做法是每条之间留2050ms电机响应慢或总线负载高时留100ms更稳。连续发两条写命令第二条可能在从站还没处理完第一条时就到了表现就是“第一条成功、第二条超时”。如果命令表支持“收到响应再发下一条”优先用这种模式不支持就加延时。终端电阻和波特率不用再重复但换到CANPro后要再确认一次第三方软件不会替你检查物理层。5.3 现场踩坑记录五条现象、原因与解决下面五条是台架和整机上反复出现的按“现象→原因→解决”记比看十页概念有用。第一条CanOpenDemo能打开设备CANPro发SDO全部超时。现象是CANPro里请求帧能看到响应帧一条没有。原因多半是帧ID偏了界面节点ID设成2命令表里还写0x601或者波特率不是1000K。解决是先读0x1018确认节点ID再把命令表里的0x600NodeID、0x580NodeID全部改掉确认波特率一致最后用一条读0x1000的SDO试通。第二条CANPro发0x60601成功发0x607A也成功电机就是不使能。现象是写响应都是0x60状态字0x6041却停在Switch on disabled。原因是只写了模式和目标位置没走控制字状态机。解决是按0x0006→0x0007→0x000F走使能序列每步读0x6041确认状态故障时先发0x0080复位再重新走序列。第三条多电机台架扫描不到第二台或者第二台响应错乱。现象是单台正常并上去后扫描列表少一个或者发节点1的命令节点2回。原因是节点ID重复或终端电阻不匹配。解决是逐个上电改节点ID确认每台ID唯一总线两端各留一个120Ω短距离台架也别把终端电阻全去掉扫描前先断电重启让从站重新初始化。第四条导入命令表后第一条成功后面连续超时。现象是命令表批量执行时前半段正常后半段全红。原因是SDO之间延时太短或者命令表里混了PDO步骤而PDO没配好。解决是把命令表拆段跑先只读探测再使能再运动SDO之间加50100ms或改成等响应触发PDO步骤单独确认映射后再执行。第五条绝对位置模式每次走的位置不一样相对模式又越走越偏。现象是目标位置填同一个数实际位置读回每次差一点切相对模式后增量累加不对。原因是绝对/相对控制位没对齐或者零点/实际位置没读。解决是先读0x6064记录当前值确认控制字里绝对/相对位绝对模式先回零或固定起点相对模式每次用读回位置做基准别把上位机勾选框和命令表里的控制字当成同一回事。6. 进阶验证用状态字、错误码和一次抓包把调试闭环6.1 把“能转”升级成“可复现”的三张表调试到最后我一般不看界面上的“运行成功”而是看三张表能不能对上。第一张是状态表0x6041状态字在使能前后、运行中、到位后分别是什么值第二张是位置表0x607A目标位置、0x6064实际位置、0x6061模式显示每次运动前后各读一次第三张是错误表0x603F错误码和SDO异常响应0x80里的错误码。三张表对得上换一台同型号电机只改节点ID就能复现对不上界面再好看也只是这一次能转。验证项对象/帧期望失败时先看设备身份0x1018厂商/产品码一致节点ID、命令表是否拿错当前模式0x6061与0x6060写入值一致是否在使能状态下写模式状态字0x6041使能后进入Operation enabled控制字序列、故障是否未复位实际位置0x6064随目标位置变化目标位置、绝对/相对位、限位错误码0x603F/0x80响应无异常或可解释索引、子索引、数据长度6.2 一次抓包回放比反复点按钮更省时间我习惯在第一次跑通后抓一段完整报文从打开设备、读字典、写模式、走使能、发目标位置到到位停机全部存下来。下次现场再遇到“同样配置不动作”先回放这段报文对比请求帧和响应帧差在哪。常见差异就几类节点ID变了、控制字少了一步、SDO延时不够、PDO映射被改。抓包回放的好处是把玄学问题变成帧对比不用靠记忆猜。从那以后我每次接新电机都强制走一遍“读身份→读状态→写模式读回→走使能读状态→小行程运动读位置→抓包存档”的闭环再动速度和行程参数。这套习惯不花多少时间但能挡住大部分“昨天能跑今天不跑”的翻车。资源包里的手册和命令表拿到后先按第2章的接线表把设备打开再用第5章的五条坑做一次回放基本就能把CANopen调试从碰运气变成可复现的流程。希望帮到你。本文还有配套的精品资源点击获取
企业数字化 ERP 产品动态
相关推荐
Tcllib 2.0矩阵数据结构:高性能计算与优化实践 1. 项目概述:Tcllib 2.0中的矩阵数据结构在Tcllib 2.0这个Tcl标准库的增强版本中,struct::matrix模块提供了一个强大的二维矩阵数据结构实现。作为Tcl脚本语言中处理表格数据的核心工具,它填补了原生Tcl在结构化数据操作上的空白。我在处理气… · 2026/11/6 7:10:26
知识图谱与大模型融合:SubGraphRAG技术解析与实践 1. 知识图谱与大模型融合的技术痛点作为一名长期跟踪知识图谱与语言模型技术演进的从业者,我深刻理解当前技术融合的瓶颈所在。大语言模型(LLMs)虽然展现出惊人的文本生成能力,但在实际业务场景中经常遭遇两大致命伤:一… · 2026/11/6 7:09:26
操作系统期末试题答案解析:分页地址、线程同步与磁盘调度 简介:面向高校操作系统课程期末复习的试题资料,聚焦西安电子科技大学《操作系统》期末试卷及配套答案解析,适合计算机相关专业学生考前自测与查漏补缺。资源包仅含1个PDF文件,大小约118KB,篇幅紧凑,核心内容… · 2026/11/6 7:09:26
算法与数据结构可视化工具评测与学习指南 1. 为什么需要算法与数据结构可视化工具? 作为一名从业十年的全栈工程师,我深刻理解算法和数据结构学习的痛点。初学者常陷入两个极端:要么死记硬背代码模板却不懂核心思想,要么被数学推导吓退失去兴趣。直到2016年我接触了第一个… · 2026/11/6 7:59:34
云运维工程师进阶指南:负载均衡与高可用架构实战 1. 云运维工程师成长指南:从入门到精通的完整知识体系 作为一名在云计算领域摸爬滚打多年的老运维,我深知这个行业的知识体系有多么庞杂。今天我想分享一份经过实战检验的云运维学习路径,这不仅仅是一份脑图,而是我带着团队完成数… · 2026/11/6 7:59:34
OpenStack Cinder备份可靠性增强:三重校验与状态机治理 简介:这是一份面向OpenStack运维工程师与云平台开发者的Python工具脚本,专为简化Cinder卷备份/还原流程而设计,有效应对Cinder Backup Service在多租户支持、备份可见性控制及自动轮换等方面的原生限制。资源包共4个文件(11KB&… · 2026/11/6 7:58:33
电商履约系统架构设计与核心流程解析 1. 项目概述 "履约全局"这个概念在电商领域已经存在多年,但真正能把商品从仓库到用户手中的全链路讲透的人并不多。作为经历过完整电商系统开发的老兵,我想用这篇长文把履约环节的每个技术细节掰开揉碎,分享给正在这个领域奋斗的同… · 2026/11/6 7:58:33
字符串解码算法:栈结构处理嵌套编码 1. 问题背景与需求分析 字符串解码是算法面试中的经典题型,力扣第394题要求实现一个能够处理嵌套编码字符串的解码器。这类问题在实际开发中有着广泛的应用场景,比如JSON解析、模板引擎处理、配置文件读取等场景都会遇到类似的字符串解析需求。 给定一个… · 2026/11/6 7:58:33
基于Prometheus的企业网站自动化监控方案 1. 项目概述 在企业IT运维工作中,网站可用性监控是保障业务连续性的基础环节。传统的人工巡检方式效率低下,而市面上的SaaS监控服务又往往存在价格昂贵、数据隐私等问题。本文将分享一套基于开源工具Prometheus的网站监控方案,实现从探测到告… · 2026/11/6 7:58:33
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:27:59
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:03
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:07
三菱PLC数据采集到数据库的时序设计:Python+MC协议实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 1:02:11
ASIC主模式RTL设计:状态机与三态驱动的流片级实现 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 1:02:11
STM32嵌入式C++开发:GDB调试与Renode仿真实战指南 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 1:02:11
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:27:59
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:03
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:07