简介《消防主机协议列表_V1.0_20171116.pdf》是面向消防系统集成商、设备厂商与运维工程师的通信协议速查文档重点解决多品牌消防主机在接入、地址映射与数据解析上的兼容问题。压缩包仅含1个PDF文件约129KB篇幅紧凑便于现场查询和随项目归档。文档按版本迭代整理海湾、西门子、安舍、NOTIFIER、营口山鹰、青岛鼎信等主机的协议条目涉及部件地址映射方法0/1/2、9600与19200bps波特率、模块地址加1000的重映射规则、事件帧ACK(0x06)应答、通讯故障监控开关以及打印口/CRT卡等接入方式。读者可据此核对主机与模块、手报、探测器的地址对应关系理解协议修订中的兼容性处理与故障修正思路减少联调时的地址冲突和收数异常。目前已有2668人学习适合作为消防报警系统对接、协议调试与维护排障的案头参考。1. 串口能收到数据却全是乱码先别急着换线手里那份消防主机协议列表翻到第二遍串口助手还在刷乱码或者更气人的情况数据能收到、帧也能拼出来可传上平台的设备地址全是错的探测器对得上、模块集体串号。这类故障在火灾报警主机对接里太常见了消防文档里一行“波特率 9600、校验 odd、停止位 1”看着平平无奇实际现场只要错一个参数后面地址映射、通讯故障判断全是白搭。这篇把串口参数、地址映射、通讯故障三段最容易翻车的环节拆开讲适合正在做主机对接、平台联调、协议排查的工程师也适合刚接手的运维照着命令一步步定位。2. 串口参数不匹配波特率、校验位、停止位三件套的排错顺序消防主机协议列表里每个协议条目都跟着一串串口参数比如9600,none,8,1、9600,odd,8,1、4800,even,8,2。这四个数字分别是波特率、校验方式、数据位、停止位。对接现场最常见的“收不到数据”“收到乱码”九成以上出在这四项里而不是线坏了、卡坏了。我的排查顺序固定是先确认波特率再确认校验位最后确认停止位和数据位因为波特率错会导致完全无意义的字节流校验位错往往表现为“偶发脏帧、能收到但解析失败”停止位错则更隐蔽帧边界会漂移。2.1 波特率对了校验位错了能收到数据但解析失败的典型特征波特率错和校验位错的症状完全不一样先分清能省很多时间。波特率错时串口工具里看到的是成片的乱码比如本该是EB 90开头的帧头变成一堆不规律的字节因为采样时钟都对不上比特被切碎了。校验位错时物理层还能勉强采到字节但每个字节的校验位判断会对不上常见现象是“偶尔能拼出一帧、大部分帧校验失败”或者帧里的数据字段整体偏移一位。消防主机里用奇校验odd的协议不少比如能美系列、泛海三江部分接口用偶校验even的也有比如 SIMPLEX 4100 系列、青岛鼎信。先做一件事确认你手上这个协议条目原文写的到底是none、odd还是even。协议列表里7-1写的是9600,even,8,18-1写的是9600,odd,8,1这两个看起来只差一个词现场配反了就是全盘解析失败。我一般先用串口工具按none收一遍如果字节数对、帧头对、但校验和永远不过再切odd/even试基本一次能锁定。# 查看 ttyUSB0 当前实际生效的串口参数确认没有被其它进程改过 stty -F /dev/ttyUSB0 -a # 强制设置为 96008 数据位无校验1 停止位raw 模式 stty -F /dev/ttyUSB0 9600 cs8 -parenb -cstopb raw -echo-F指定设备节点cs8是 8 位数据位-parenb关闭校验对应协议表里的none-cstopb是 1 位停止位raw表示不做任何行处理和回显。这条命令跑完立刻cat /dev/ttyUSB0 | xxd看原始字节如果帧头能对上但内容还是乱的问题多半在波特率或校验而不是应用层解析。要注意stty改完只对当前会话生效插拔串口或重启后会复位所以现场排查完记得把参数固化到你的采集程序初始化里。2.2 停止位和数据位的冷门坑8,2 和 odd 校验怎么在工具里配协议列表里绝大多数条目是8,1也就是 8 数据位、1 停止位但有两类冷门参数最容易让人翻车。第一类是8,2即 2 位停止位比如松下 EBL8000 系列写的是4800,even,8,2如果按默认的 1 位停止位去收帧和帧之间会多出半个字节的间隔表现为“每帧最后一个字节偶尔丢、下一帧帧头错位”。第二类是校验位none和odd/even在 Python 的 pyserial 里是三个不同的枚举值配错不会报错只会安静地解析失败。我一般不用stty配奇偶校验因为parenb/parodd的组合在不同内核版本上行为容易记混直接在采集程序里用 pyserial 显式声明可读性更好也方便把参数写进配置表。import serial # 按协议表配置96008 数据位奇校验1 停止位 ser serial.Serial( port/dev/ttyUSB0, baudrate9600, bytesizeserial.EIGHTBITS, # 数据位 8 parityserial.PARITY_ODD, # odd 用 PARITY_ODDeven 用 PARITY_EVENnone 用 PARITY_NONE stopbitsserial.STOPBITS_ONE, # 2 位停止位时改成 serial.STOPBITS_TWO timeout1 )bytesize对应协议表第三位parity对应第二位stopbits对应第四位。这里的关键是协议表里的8,1和 pyserial 的EIGHTBITS/STOPBITS_ONE是一一对应的不要被“8N1”这种简写迷惑N 就是 parityNone。现场我见过有人把8,2理解成“8 数据位、2 校验位”配成PARITY_EVEN加 1 停止位结果收了一下午脏帧。遇到松下这类 4800 波特率加 2 停止位的老协议先把这四个参数按表抄对再谈地址解析。2.3 用一条命令确认串口参数真的生效了参数配完不等于生效尤其是现场有多套采集程序抢同一个串口、或者用了 USB 转 232 再转 485 的多级转换器时最上层看到的参数和底层主机实际跑的参数可能不一致。我的习惯是配完参数后立刻抓一段原始字节回来对照协议表的帧结构而不是直接看应用层日志。因为应用层日志会做二次解析你看到的“解析失败”可能是参数错也可能是帧头判断错混在一起很难区分。# 抓 200 个字节的原始数据按十六进制打印方便对照协议帧头 timeout 3 cat /dev/ttyUSB0 | head -c 200 | xxdtimeout 3保证不会一直阻塞head -c 200取前 200 字节xxd转十六进制。抓回来的内容先看帧头协议列表里不少主机是固定帧头比如EB 90、AA 55之类如果帧头都不对说明波特率或校验至少错了一个如果帧头对但长度字段明显偏大偏小问题可能在停止位导致的帧边界漂移。这一步做完再回头查地址映射能避免把参数问题误判成映射问题。注意多级转换器232 转 485、485 转光纤会引入额外延迟抓包时把timeout设长一点别用 1 秒就下结论我吃过这个亏。3. 地址映射方法选错探测器对得上、模块全乱套的根因串口参数对了、原始帧能拼出来了下一个高频报错就是“地址不对”。典型症状是平台侧收到的探测器地址和现场一致但模块地址全部错位或者某个回路的模块和探测器地址撞在一起平台显示“23 号点位”却分不清是探测器还是模块。根因几乎都落在两个地方一是协议条目对应的地址映射方法选错二是该主机同一回路内模块与探测器存在地址重号需要二次映射。消防主机协议列表里为每条协议标了“方法0”到“方法6”又单独列了 R0 二次映射这两层机制必须一起看。3.1 方法0到方法6四种高频映射的字节布局和适用场景协议列表表1把映射方法拆成了 0 到 6其中现场最常遇到的是方法0、方法1、方法2、方法3。理解这四种的关键是把上传的“部件地址”看成一个 4 字节结构不同方法决定这 4 个字节分别装什么。方法0高 2 字节装区号低 2 字节装位号回路信息合并在区号字段里适合区号和位号都是 0~65000 范围的主机。方法1第 1 字节是主机号0~64第 2 字节是回路号0~999第 3、4 字节是设备号0~65000适合多主机联网、需要区分主机号的场景。方法2第 1 字节主机号0~640第 2 字节回路号0~99第 3、4 字节设备号与方法1的区别是主机号范围更大、回路号范围更小。方法34 个字节直接就是设备号不分区位号专门给设备号本身就是 4 字节的主机用比如部分西门子、海湾 9000 打印口协议。def build_part_addr(method, host, loop, point, deviceNone): 按协议表的方法拼装 4 字节部件地址返回整数便于比对 if method 0: # 方法0区号占高 16 位位号占低 16 位 return ((host 0xFFFF) 16) | (point 0xFFFF) if method 1: # 方法1主机号 1 字节 回路号 1 字节 设备号 2 字节 return ((host 0xFF) 24) | ((loop 0xFF) 16) | (device 0xFFFF) if method 2: # 方法2主机号 1 字节 回路号 1 字节 设备号 2 字节 return ((host 0xFF) 24) | ((loop 0xFF) 16) | (device 0xFFFF) if method 3: # 方法34 字节整体就是设备号不拆区号位号 return device 0xFFFFFFFF raise ValueError(unknown method)host/loop/point/device的取值要严格按协议表里的范围裁剪比如方法2的主机号上限是 0~640超了就会被截断成错误地址。方法3要特别小心它和设备号是 4 字节的主机绑定如果你拿方法0的思维去解析方法3的帧会把设备号的高字节误当成区号现象就是“地址整体偏大一个固定倍数”。我一般先在纸上把 4 个字节画出来标清楚每字节装什么再写解析代码比直接调试快。3.2 模块与探测器重号的死结R0 二次映射为什么是模块地址加 1000方法0到方法6解决的是“主机号、回路号、设备号怎么排进 4 个字节”但没解决另一个问题同一回路里模块和探测器可能用同一套地址编码比如探测器 23 号和模块 23 号同时存在。平台侧只看到一个“23”根本分不清是烟感还是输入输出模块。协议列表表2专门给了二次映射方法 R0模块地址统一加 1000探测器地址保持不变。这样模块 23 上传成 1023探测器 23 还是 23冲突就解开了。这个规则在协议列表里出现得很频繁NOTIFIER 3030 系列、赋安 FS5050、赋安 5058 都涉及。赋安 FS5050 在V1.0_170510那次修改里明确写了“对总线模块设备地址进行重新映射模块地址映射地址 模块地址 1000”。所以看到协议名后面带R0的条目解析时必须先判断设备类型模块走加 1000探测器原样上传。def apply_r0_remap(device_type, raw_addr): R0 二次映射模块类设备地址 1000探测器不动 if device_type in (module, manual_call): return raw_addr 1000 return raw_addrdevice_type要来自帧里的设备类型字段不能靠地址猜因为模块和探测器可能共用地址区间。raw_addr是主机原始上报的地址加 1000 之后再拼进方法0到方法6的部件地址里顺序不能反。现场翻车最多的情况是“先映射再解析”把 1023 当成原始地址又拆了一遍结果区号和位号全乱。3.3 改了映射方法后历史地址全变怎么迁移协议列表的更新记录里映射方法被改过的条目不少河马 HM8000 从方法0改成方法1西门子 FC18R-PRT 从方法1改成方法3赋安 FS5050 改成方法1 并叠加 R0。这类变更对已经在跑的系统影响很大因为平台侧存的点位地址是按旧方法算的协议一升级同一个物理设备上传的地址变了平台侧就显示“新点位”旧的报警记录、平面图绑定全部对不上。迁移时我按三步走第一步拿协议列表里该条目的当前映射方法写一个小脚本把平台上所有点位的旧地址反算回“主机号/回路号/设备号”三元组第二步按新方法重新拼装部件地址第三步在平台侧做地址映射表的批量替换而不是手工改点位。反算时要注意方法3不可逆——方法3只有 4 字节设备号没有区号和位号如果旧数据是按方法0存的反算会丢信息这种情况只能从主机侧重新导出一份设备清单做比对。4. 通讯故障误报与轮询应答平台一直报“与主机通讯故障”参数对了、地址也对了平台侧还是每隔几十秒弹一条“与消防主机通讯故障”但现场主机明明正常运行、报警也能传上来。这类问题在协议列表里其实有明确线索大量协议名带NL后缀备注写“不监控与消防主机通讯故障”部分协议要求“收到事件数据帧后发送 ACK(0x06) 应答”还有打印口类协议本身就没有主动心跳。搞不清这几种模式的差别就会把正常的“无心跳”误判成故障。4.1 主动轮询与被动回复打印口协议为什么没有心跳消防主机对接分两种模式。一种是主动轮询采集程序定时向主机发查询命令主机回当前状态这种模式天然有“心跳”平台侧只要在超时时间内收到回复就认为通讯正常。另一种是被动回复典型代表是打印口协议主机把报警信息打到打印机口采集程序只是旁听全程不发命令也就没有“你问我答”的心跳。协议列表里5-6、5-8、16-2、20-3、40-1、40-2、48-1这些都是打印口类备注里往往不写“是”是否监控通讯故障意思就是不监控。如果平台侧对打印口协议仍然按“30 秒没收到心跳就报故障”去判必然误报。正确做法是在平台侧把这几个协议的超时判断关掉或者改成“收到任意一帧就刷新最后通讯时间”。我在现场一般先看协议条目备注里“通讯故障”那一列是不是空的空的就说明这条协议本身不产生心跳语义平台侧不能拿轮询协议的标准去套。4.2 NL 后缀协议的语义不监控通讯故障但平台侧要跟着改NL后缀在协议列表注1里写得很清楚协议名称加NL的表示该协议不监控与消防主机通讯故障。比如4-6 青鸟 193K 卡 V1.8NL、6-3 利达 LD128E NL、8-4 能美 R21 NL、22-2 营口山鹰转换器 NL、32_5 依爱 6120 模块 NL。这些条目对应的主机或转换器要么本身不上报通讯状态要么厂家明确要求不监控采集程序如果还按“必须收到心跳”去判就会一直报故障。处理办法分两层采集程序侧对NL协议关闭通讯故障检测逻辑不要因为一段时间没收到帧就上报“主机通讯故障”平台侧把对应设备的故障判定规则改成“仅当收到主机主动上报的故障帧才显示故障”而不是靠采集程序的心跳推断。两层都改才算改干净只改一层另一层还会把误报顶上来。4.3 ACK 0x06 与特殊字符转义NOTIFIER 和西门子 FS720 的两个细节坑协议列表里有两条容易被忽略的细节。第一条是10-5 NOTIFIER N-CRT_1备注写“收到事件数据帧后发送 ACK(0x06) 应答”。这不是可选项主机发出事件帧后会等这个应答收不到就重发重发几次还不通就判定链路异常。采集程序如果只收不发表现就是“事件能上来但延迟很大、同一事件重复上报”根因是没回 ACK。实现上就是在解析完一帧之后立刻往串口写一个0x06字节不要等业务处理完再回否则主机的重发窗口早过了。def on_event_frame(ser, frame): 收到事件帧后立即回 ACK再走业务解析 ser.write(b\x06) # ACK必须在解析前发抢在主机重发窗口内 parse_frame(frame)第二条是5-4 西门子 FS720更新记录里写“修改处理了数据包中间出现 0xEB 字符的问题”。这类问题属于帧内转义0xEB 在西门子协议里可能是帧头的一部分数据字段里出现同样的字节时如果解析器用“找 0xEB 就当帧头”的简单逻辑就会把一个数据字节误判成新帧开头导致整包错位。正确做法是按协议定义的帧长度字段或转义规则解析而不是全文搜索帧头字节。我在现场遇到“偶发解析错位、重启后恢复”的西门子主机第一反应就是查帧内是否出现了和帧头相同的字节。5. 避坑与常见问题五条我踩过的协议对接翻车记录5.1 方法0当方法1用区号里塞了主机号现象平台侧探测器地址整体偏移原本 1 回路 5 号点位显示成 256 号以上模块地址更是大得离谱。原因协议条目写的是方法1采集程序按方法0解析把第 1 字节的主机号当成了区号高字节第 2 字节的回路号当成了区号低字节位号字段整体后移两个字节。解决把协议列表里该条目的映射方法抄到配置表里解析函数按方法分支走方法1 和 方法2 的字节布局很像但主机号范围不同不能混用。5.2 波特率改了校验位没改能收到数据但全是脏帧现象串口助手能看到字节流帧头偶尔对得上但校验和永远不过应用层日志刷“帧校验失败”。原因只改了波特率校验位还停在上一个协议的none而当前协议是odd。校验位错不会导致完全收不到数据只会让字节的校验位判断失败所以症状比波特率错更隐蔽。解决按协议表四项参数一起改改完抓原始字节对照帧头帧头对但校验不过就优先怀疑校验位。5.3 升级协议后地址偏移报警位置整体串台现象协议从旧版本升到新版本后同一个物理设备上传的地址变了平台平面图上报警位置全部错位。原因升级记录里映射方法被改过比如从方法0改成方法1或者叠加了 R0 二次映射而平台侧点位表还是按旧方法算的地址。解决升级前先用脚本把旧点位地址反算成主机号/回路号/设备号再按新方法重算批量替换平台侧映射表不要手工一个个改。5.4 选了 NL 协议平台侧仍按 30 秒心跳判故障现象主机运行正常、报警能传平台每隔 30 秒弹一条“与主机通讯故障”反复出现。原因采集程序已经按NL协议关闭了故障检测但平台侧仍然用轮询协议的心跳规则去判两边规则不一致。解决采集程序和平台侧同时改采集侧对NL协议不上报通讯故障平台侧改成“仅认主机主动上报的故障帧”两层都改完误报才消失。5.5 打印口协议接串口助手能看接平台没数据现象用串口助手接打印口能看到明码报文换到采集程序后平台侧一条数据都没有。原因打印口协议是被动旁听采集程序却按主动轮询去发查询命令主机不认查询命令或者采集程序等不到“应答”就判定超时。解决打印口类协议在采集程序里配成纯接收模式不主动发命令同时确认串口的流控和缓冲区设置不会把明码报文截断。6. 快速定位从串口抓到平台显示的四步排查顺序这类故障排查最怕东一榔头西一棒子我的固定顺序是四步每一步都有明确的“通过标准”不通过就不往下走。第一步看物理层串口能不能收到字节收不到就查线、查转换器、查波特率第二步看帧层帧头、长度、校验能不能对上对不上就查校验位和停止位第三步看地址层把原始帧里的设备地址按协议表的方法拆出来和现场设备清单比对对不上就查映射方法和 R0第四步看平台层地址对了但平台显示错查平台侧的点位映射表和故障判定规则。排查步骤观察点通过标准常见失败原因物理层串口是否有字节持续有数据流入波特率错、线序错、转换器供电帧层帧头、长度、校验连续多帧校验通过校验位错、停止位错、帧内转义地址层拆出的设备地址与现场清单一致映射方法选错、漏做 R0平台层平台显示的地址与状态与原始帧一致平台映射表未更新、心跳规则冲突地址层是最容易卡住的一步我一般会写一个临时脚本把抓到的原始帧按当前映射方法拆成“主机号/回路号/设备号”再和现场设备清单逐条比对。如果探测器全对、模块全错基本可以锁定是 R0 没做或者设备类型判断错如果整体偏移一个固定值多半是映射方法选错如果只有某个回路错查该回路的地址范围和协议表里的范围上限是否冲突。从那以后我每次接手新的主机协议都强制先走一遍“串口参数—原始帧—映射方法—R0—心跳规则”这五项目检把协议列表里该条目的四项参数、映射方法、是否带 NL、是否要求 ACK 抄进配置表再动手写代码。这套习惯帮我省掉了大量“改了半天代码最后发现是校验位配错”的时间。希望帮到你。本文还有配套的精品资源点击获取
企业数字化 ERP 产品动态
相关推荐
Gemini 3.8终端能力实测:代码跑通率翻倍,AI智能体终于能干活了 Google 深夜发大模型,这种事情这几年其实挺常见的,但说实话,Gemini 3.8 这一发还是让我在群里跟朋友聊到凌晨两点。不是因为参数大,也不是因为发布会排场,而是因为这次的版本终于开始“死磕”一个非常具体、非常招人恨… · 2026/11/6 14:52:32
共享单车大数据分析:Hadoop+Spark+Flask全流程实践 1. 项目背景与核心价值 共享单车作为城市短途出行的重要解决方案,每天产生海量骑行数据。这些数据中隐藏着用户行为模式、车辆调度优化点和城市交通热点等关键信息。传统的数据处理方式往往面临三个痛点:数据规模大导致处理效率低下、分析维度单一难以挖… · 2026/11/4 6:18:19
LEF/DEF 5.8 精读:抽象边界、实例快照与回读排错 简介:《LEF/DEF 5.8 Language Reference》是 Cadence 官方发布的 LEF 与 DEF 集成电路描述语言参考手册,面向 IC 物理设计、EDA 工具开发及版图验证相关工程师与高年级学生,用于厘清工艺技术定义、单元模型库与设计布局布线信息在工具间的交换… · 2026/11/3 20:45:38
电工证富士康上岗必须考这个证吗?考前押题怎么用? 电工证富士康上岗必须考这个证吗?考前押题怎么用? 你学历不高,怕报不上名?别急,电工证富士康岗其实没有那么难,关键是要掌握考前押题的技巧。在郑州金水区,很多学员都是从零基础起步,最终成功拿到电工证并顺利入职富士康。今天就来聊聊,这个证到底有… · 2026/11/7 20:34:05
电工证 几年一审培训机构怎么选 电工证几年一审全国通用怎么选培训机构 不知道去哪报名怕被中介坑?电工证几年一审全国通用,现在越来越多工地、工厂都要求持证上岗,但市场上培训机构五花八门,真假难辨。选错了不仅钱白花,还可能耽误工作。这篇文章讲透电工证几年一审全国通用背后的操作… · 2026/11/7 20:34:05
低压电工作业算几级2026河南最新政策怎么考不踩坑 低压电工作业算几级2026河南最新政策怎么考不踩坑 怕考不过白交培训费?2026河南最新政策一出,低压电工作业算几级成了大家最关心的问题。很多在信阳浉河区干市政公用工程的朋友,手里握着低压电工证,但对这个证到底算几级心里没底,怕一不小心考错… · 2026/11/7 20:34:05
醴陵市特种作业操作证通过率揭秘:怕考不过白交培训费?别慌! 醴陵市特种作业操作证通过率揭秘:怕考不过白交培训费?别慌! 你是不是也在担心,花了几千块报了【醴陵市特种作业操作证】培训,最后却因为没通过考试而打水漂?别急,今天就来带你扒一扒这本证的报考流程、考试通过率揭秘、备考技巧,还有南阳应届工程类毕… · 2026/11/7 20:33:05
双极步进电机控制实战: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/7 11:25:08
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/7 12:02:18
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/6 10:29:23
澳洲水电工证考试:证书过期了不知道怎么复审延期?电子证书怎么弄? 澳洲水电工证考试:证书过期了不知道怎么复审延期?电子证书怎么弄? 证书过期了不知道怎么复审延期?别慌,很多人在拿到【澳洲水电工证考试】的电子证书后,一不小心就忽略了复审时间,结果证书失效,工作受阻,甚至被单位追责。今天就从【澳洲水电工证考试… · 2026/11/7 0:00:41
电工作业提示版通过率揭秘:怎么考才能一次过? 电工作业提示版通过率揭秘:怎么考才能一次过? 怕考不过白交培训费?别急,今天我就从驻马店应届工程类毕业生的视角,带你全面了解电工作业提示版的考试流程、备考要点和真实通过率,帮你少走弯路、提高一次通过率。… · 2026/11/7 0:00:41
电工证年审报名千万别踩坑 外省证转过来要搞清这几点 电工证年审报名千万别踩坑 外省证转过来要搞清这几点 之前考的证在外省能不能转过来?这个问题是很多电工从业者最关心的,特别是像你这样在商丘从事公路工程的人员,经常需要跨省流动,证书的 有效性 和 可迁移性… · 2026/11/7 0:00:41
双极步进电机控制实战: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/7 11:25:08
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/7 12:02:18
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/6 10:29:23