首页/新闻资讯/正文详情

1553B总线入门:命令字、消息调度与BC/RT联调

发布时间:2026/11/3 13:22:05 来源:云帆数科 栏目:资讯中心
1553B总线入门:命令字、消息调度与BC/RT联调
简介《1553B总线入门教程》PPT面向航空航天、导弹、无人机及装甲车辆等领域的总线通信初学者与工程技术人员系统梳理GJB289A/1553B协议的基础概念、标准来源与工程应用要点。压缩包内仅含1个pptx文件大小约5.26MB以图文幻灯片形式组织章节便于集中讲解和随堂演示。已有1544人学习下载具备一定参考热度。课件围绕BC、RT、BM三类节点职责命令字、数据字、状态字结构半双工工作方式与曼彻斯特编码数据通信、模式代码、广播等消息格式展开并说明每个字由3位同步头、16位内容和1位奇偶校验构成延伸至典型传输流程、消息、子帧、非周期传输机制及ETestDev的BC、RT通道API示例。读者可据此快速建立协议框架理解软硬件协同设计并为仿真卡调试与后续开发提供入门参照。1. 从一张PPT拆起1553B总线在什么场景下值得学去年帮某实验室看一套无人机飞控的地面联调台现象很怪BC 侧日志里消息发得好好的RT 侧固件却说“没收到那条带模式代码的命令”两边各执一词。最后查下来不是谁撒谎而是命令字里子地址字段填了 0、走成了模式命令跟原本想发的那条数据消息压根不是一回事。这件事之后我对 1553B 总线的理解就落地了——它难的不是协议背不下来而是每一个 16 位字里的比特位怎么和硬件行为对上。这份“1553B 总线入门教程”PPT 把 GJB289A 那一套东西压缩得比较狠节点类型、三种字结构、消息格式、仿真卡的周期机制、再到 BC/RT 通道的 API 调用一条线走完。它适合两类人一是刚接触航电总线、需要把术语和波形对上的新人二是手里已经有仿真卡、要照着接口把收发跑起来的集成人员。下面按“先立结构、再排消息、最后跑通接口”的顺序拆。2. 节点、字、编码把 1553B 的三层结构一次摆正1553B 总线的结构可以分三层看最上面是节点角色中间是字格式最底下是电气与编码。新手最容易犯的错是跳过第一层直接去写代码结果 API 参数填得对、总线却不动因为角色没摆正。2.1 BC/RT/BM 的职责边界与常见误判BC 是总线控制器所有传输都由它发起任何时刻总线上只能有一个 BC。RT 是远程终端被动响应和它无关的数据它看不到也不该看到。BM 是总线监控器只听不说记录总线上跑过的命令字和数据字。这三者的边界落到代码上就是三套不同的接口。BC 侧关心的是“消息表怎么排、周期怎么发、发出去之后回调在哪”RT 侧关心的是“过滤表放行哪些地址和子地址、收到的数据往哪个缓存区塞、状态字里几个标志位怎么置”BM 侧最轻只挂接收回调不参与任何应答。我见过一种典型误判把 BM 当成“备用 BC”以为 BC 挂了 BM 能接管。协议里没有这个机制BM 全程只监听切换得靠上层软件重新配置。还有一种是把 RT 当成主动方想在 RT 侧“主动上报”实际上 RT 只能等 BC 来问或者靠状态字里的服务请求位提示 BC“我有事要说”主动权仍在 BC 手里。提示一块仿真卡上通常同时具备 BC、RT、BM 三种通道能力但同一物理通道同一时刻只能配成一种角色配置错了不会报错只会静默。2.2 命令字的 16 位拼装地址、T/R 位、子地址与字计数命令字去掉 3 位同步头和 1 位奇偶校验剩下 16 位字段划分是固定的bit15~11 是 RT 地址5 位十进制 0~3031 是广播地址bit10 是发送/接收位T/Rbit9~5 是子地址/模式字段bit4~0 是数据字计数。这里有几个十进制坑必须提前说清。RT 地址 0 尽量不用31 是广播子地址用 1~300 和 31 表示后一个字段是模式代码而不是子地址数据字计数字段 5 位全 0 代表 32 个字全 1 代表 31 个字一条消息最多 32 个数据字。也就是说你想发 32 个字计数位要填 0而不是 32。def build_command_word(rt_addr, tr, sub_addr, count): 按 GJB289A 命令字格式拼 16 位字不含同步头与奇偶校验 assert 0 rt_addr 31, RT地址超出5位范围 assert tr in (0, 1), T/R位只能是0或1 assert 0 sub_addr 31, 子地址/模式字段超出5位范围 assert 1 count 32, 数据字计数1~32 # 32 个字在编码上是全0这里做一次归一 cnt 0 if count 32 else count word ((rt_addr 0x1F) 11) \ | ((tr 0x01) 10) \ | ((sub_addr 0x1F) 5) \ | (cnt 0x1F) return word 0xFFFF # 例向 RT 5 的子地址 2 发 4 个数据字 print(hex(build_command_word(5, 0, 2, 4))) # 0x2844这段逻辑的关键在最后一行掩码所有字段先 0x1F截到 5 位再左移到对应位置最后整体 0xFFFF防止越界。参数tr传 0 表示 BC 让 RT 接收传 1 表示 BC 让 RT 发送方向是从 RT 的视角定义的这一点在写收发代码时最容易反。count的归一处理单独拎出来是因为后面解析和组包都要用同一套规则写两遍迟早不一致。2.3 状态字与数据字哪些位软件必须管数据字最简单16 位纯数据同步头和校验位硬件填软件只准备 16 位负载。状态字复杂一些16 位里塞了 RT 地址、消息差错位、测试手段位、服务请求位、3 位备用、广播指令接收位、忙位、子系统标志位、动态总线控制接受位、终端标志位。软件真正要主动干预的是忙位和服务请求位忙位置 1 表示 RT 暂时处理不了BC 会按策略重试或跳过服务请求位置 1 是 RT 在向 BC 递话通常配合矢量字使用。消息差错位由 RT 在自检发现接收数据有问题时置位属于“报告事实”不是软件随便写的。def parse_status_word(sw): 把 16 位状态字拆成可读字段便于日志排查 return { rt_addr: (sw 11) 0x1F, message_error: (sw 10) 0x01, test_means: (sw 9) 0x01, service_request: (sw 8) 0x01, broadcast_rx: (sw 4) 0x01, busy: (sw 3) 0x01, subsystem_flag: (sw 2) 0x01, dbca: (sw 1) 0x01, terminal_flag: sw 0x01, } print(parse_status_word(0x2800)) # {rt_addr: 5, message_error: 0, ..., terminal_flag: 0}解析函数的价值不在打印而在排错时能一眼看出是“RT 没应答”还是“RT 应答了但忙位置 1”。实测中很多“通信不稳定”其实就是忙位偶发置 1BC 侧没做重试策略。参数上唯一要注意的是位序不同资料画图习惯从左到右标 bit15 到 bit0代码右移时按数值位来别被图带偏。2.4 曼彻斯特编码、同步头与奇偶校验的软硬件分界1553B 总线标准速率 1Mbps少数情况用 4Mbps半双工曼彻斯特 2 编码两个脉冲编码成一个逻辑信号。这一层的细节做应用的人不需要手写编解码但必须知道边界在哪同步头3 位命令字/状态字是 1 个高电平加 2 个低数据字相反和奇偶校验由硬件填充和验证软件只处理中间 16 位。这个边界弄不清会出两类问题。一类是软件里自己又算了一遍奇偶校验往数据里塞结果硬件再算一次校验位永远不对另一类是看抓包工具里“同步头不对”就以为配置错了实际上可能是探头接地或终端电阻的问题。我的习惯是软件侧只校验 16 位负载的语义电气层交给仿真卡和示波器两边不越界。3. 消息传输格式十种消息怎么选、周期怎么排字格式解决的是“一个字长什么样”消息格式解决的是“几个字怎么排成一次通信”。这一层决定 BC 侧消息表怎么写也是联调阶段返工最多的地方。3.1 消息格式对号入座BC→RT、RT→BC、RT→RT、广播与模式命令按命令字加数据字加状态字的组合常见消息可以归成几类BC 到 RT 的接收消息命令字、若干数据字、RT 状态字、RT 到 BC 的发送消息命令字、RT 状态字、若干数据字、RT 到 RT 的转发消息BC 先发接收命令给一个 RT再发发送命令给另一个 RT、广播消息地址 31所有 RT 接收但都不回状态字、以及模式命令子地址字段为 0 或 31后面跟模式代码可能带也可能不带数据字。选型上有一个判断顺序先看方向再看有没有数据字最后看是不是广播或模式。RT 到 RT 的转发最容易翻车因为它对时序要求更紧BC 要在第一个 RT 准备好接收之后、超时窗口之内把第二条命令发出去中间隔太久第一个 RT 的状态字就过期了。广播消息则是另一个极端发完就完BC 收不到任何状态字别把它当故障。3.2 子帧模式与消息模式的周期粒度ms 与 us 的取舍仿真卡上常见的两种调度方式PPT 里叫消息模式和子帧模式单位不一样消息模式每条消息可以单独设周期单位 ms子帧模式每个子帧周期固定同一子帧内的消息周期相同单位 us。这个单位差异不是笔误而是两种设计思路。消息模式灵活适合消息数量少、周期差异大的场景比如一条 20ms 的状态查询和一条 100ms 的慢速参数上传可以混着排。子帧模式死板但确定性强适合把整个通信周期切成若干个等长子帧每个子帧里塞固定条数的消息BC 按帧推进抖动可控。选哪种看你的上层协议对时间确定性的要求飞控这类闭环控制倾向子帧地面测试设备消息模式更省事。维度消息模式子帧模式周期单位msus周期粒度每条消息独立同一子帧内相同适用场景消息少、周期差异大强实时、抖动敏感配置复杂度低中需要先划子帧3.3 非周期消息、矢量字与 NOOP 的配合周期消息之外还有非周期消息分高优先级和低优先级和周期消息同时工作。非周期消息的插入点通常在子帧边界或消息间隙高优先级的会抢占下一个可用窗口。这里有个容易被忽略的细节消息模式下为了保证及时发送需要在消息表里设置 NOOP 消息占位。NOOP 不产生实际总线传输但它把时间窗口“撑”出来让非周期消息有地方插。不设 NOOP非周期消息只能等周期消息全部排完之后再发延迟不可控。不定期数据更新通常靠周期性发送矢量字实现RT 把要上报的事件挂在矢量字上BC 定期问一次矢量字再去读对应子地址的数据。这套机制比让 RT 主动上报靠谱因为主动权始终在 BC 手里时序可预测。4. ETestDev 里跑通 BC 与 RTAPI 调用顺序与参数配置到这一层就是动手了。PPT 里给的接口是 ETestDev 风格的同步调用加回调BC 和 RT 各有一套。下面按调用顺序拆参数含义逐个说。4.1 BC 通道启动、读写、中断与停止BC 侧的调用顺序是先配消息表或子帧表再启动然后挂接收回调运行期用读写接口交换数据最后停止。import etestdev as et ch et.open_channel(bc1) # 拿到 BC 通道句柄 # 1) 子帧模式启动frame 描述子帧结构aperiod 描述非周期消息池 et.iocmd_sync(ch, StartFrame, { frame: {subframe_len_us: 1000, msg_list: [101, 102, 103]}, aperiod: {high: [201], low: [202]} }) # 2) 消息列表模式启动与子帧模式二选一 # et.iocmd_sync(ch, StartMessage, {message: [...], aperiod: {...}}) # 3) 挂 BC 接收回调RT 回的状态字和数据字从这里进 def on_bc_recv(msg_id, data): print(recv, msg_id, data.hex()) et.on_buff_recv(ch, on_bc_recv) # 4) 运行期改 BC 发送缓存 / 读 RT 回来的数据 et.write_buff(ch, b\x01\x02\x03\x04, {id: 101}) data et.read_buff(ch, 4, 500, {id: 101}) # 长度4超时500ms # 5) 插一条非周期消息 et.iocmd_sync(ch, SendAperiod, {id: 201}) # 6) 停止 et.iocmd_sync(ch, stop, {})StartFrame和StartMessage是互斥的两条路frame.subframe_len_us决定子帧长度msg_list里放的是消息 ID不是消息内容aperiod里的 high/low 是两个优先级队列。read_buff的第三个参数是超时毫秒数联调时先给大一点500ms 以上等通了再往下压。on_buff_recv回调里拿到的msg_id要和消息表里注册的 ID 对得上对不上就是配置和代码用了两套编号。4.2 RT 通道过滤表、子地址索引与数据缓存RT 侧的顺序是配过滤表、启动、挂回调、按地址和子地址读写缓存、停止。rt et.open_channel(rt1) # 过滤表只放行本 RT 关心的地址与子地址减少无效中断 et.iocmd_sync(rt, Start, { filter: {rt_addr: 5, sub_addr: [1, 2, 3], mode_code: [0x11]} }) et.on_buff_recv(rt, lambda addr, sub, idx, data: print(addr, sub, idx, data.hex())) # 预置 RT 要回给 BC 的数据发送方向 et.write_buff(rt, b\xAA\xBB, {address: 5, sub_address: 1, index: 0}) # 读 BC 发过来的数据接收方向 rx et.read_buff(rt, 2, 300, {address: 5, sub_address: 2, index: 0}) et.iocmd_sync(rt, Stop, {})filter.rt_addr必须和 BC 侧命令字里的地址一致子地址列表按实际用到的填多填不报错但会增加中断开销少填则对应消息直接被丢弃现象是“BC 发了、RT 没反应”。index是同一子地址下多块数据的序号从 0 开始读写两侧要约定一致错一位就整块错位。4.3 一份可抄的最小联调脚本与参数表把两边合到一个脚本里先起 RT再起 BC跑 3 秒看回调。import time import etestdev as et rt et.open_channel(rt1) et.iocmd_sync(rt, Start, {filter: {rt_addr: 5, sub_addr: [1, 2], mode_code: []}}) et.write_buff(rt, b\x11\x22\x33\x44, {address: 5, sub_address: 1, index: 0}) bc et.open_channel(bc1) et.on_buff_recv(bc, lambda mid, data: print(BC recv, mid, data.hex())) et.iocmd_sync(bc, StartMessage, { message: [{id: 101, rt_addr: 5, sub_addr: 1, tr: 1, count: 4, period_ms: 20}], aperiod: {high: [], low: []} }) time.sleep(3) et.iocmd_sync(bc, stop, {}) et.iocmd_sync(rt, Stop, {})参数表按顺序核对一遍参数含义常见取值出错后果rt_addrRT 地址1~30与 filter 不一致则丢弃sub_addr子地址1~300/31 会变成模式命令tr方向1 为 RT 发反了收不到数据count数据字数1~3232 要编码为 0period_ms消息周期10~1000过小会挤占带宽脚本里time.sleep(3)只是给总线留运行窗口实际工程里用事件循环或线程等待别照抄这个写法。5. 避坑与排查5 条从联调现场带回来的记录5.1 总线静默与启动失败类现象一BC 启动子帧模式返回成功但回调一条消息都收不到示波器上看总线无波形。原因通道句柄拿成了设备句柄或者通道没使能。返回 0 只代表命令下发成功不代表总线在跑。 解决打印句柄类型和通道号确认open_channel拿到的是 BC 通道启动后先读一次通道状态别只看返回值。现象二广播消息发出后 RT 有动作但 BC 收不到任何状态字误判为链路故障。原因广播命令按协议 RT 不应答收不到状态字是正常行为。 解决在消息表里给广播消息标记“无状态字”日志里不要按超时计错误。5.2 数据错位与状态字误读类现象三RT 收到了命令但回给 BC 的数据整体后移一个字第一个字变成第二个字。原因index从 0 还是从 1 开始读写两侧约定不一致或者数据字计数按 32 编码为 0 的规则没处理。 解决把 index 起始值和计数编码写进接口文档读写两侧用同一个常量抓一次原始字流逐字对。现象四状态字读出来全是 0x0000但 RT 明明在响应。原因软件预先写的状态字缓存被 RT 固件在响应时覆盖或者过滤表没放行对应子地址自动回了默认状态字。 解决状态字里的忙位、服务请求位由 RT 应用层主动置别在初始化时写死检查 filter 是否包含该子地址。现象五消息周期设 1000us实测抖动到 1.2ms。原因非周期消息在子帧边界插入高优先级非周期抢占了周期窗口NOOP 没填满窗口不够。 解决按最坏情况算带宽给周期消息留足窗口NOOP 数量按非周期峰值延迟反推别凭感觉填。6. 进阶用 BM 做旁路验证与一份上电自检顺序联调卡住的时候最省事的办法不是加打印而是挂一个 BM。BM 不参与任何传输它看到的就是总线上的真实流量命令字是谁发的、数据字几个、状态字什么时候回、字间隔有没有超。BC 和 RT 各自的日志都可能“自我感觉良好”BM 不会。挂 BM 的做法很简单开一个 BM 通道只挂接收回调把命令字、数据字、状态字按原始 16 位打出来时间戳精确到微秒。我一般会写一个小解析器把命令字拆成地址、T/R、子地址、计数四列一眼就能看出是“BC 没发”还是“RT 没回”还是“回了但地址不对”。def decode_cmd(word): return { rt: (word 11) 0x1F, tr: (word 10) 0x01, sub: (word 5) 0x1F, cnt: word 0x1F or 32, # 全0表示32个字 } # BM 回调里逐字打印配合时间戳定位间隔问题 def on_bm(msg): for w in msg.words: print(f{msg.ts_us:10} {w:04X}, decode_cmd(w) if msg.is_cmd else )上电自检我固定走一遍这个顺序顺序错了会白折腾步骤动作通过判据1只开 BM看总线是否静默无流量排除干扰源2起 RT配过滤表过滤表回读一致3BC 发单条非周期消息BM 能看到命令字与状态字4切周期消息跑 1000 个周期BM 统计丢帧为 05插高优先级非周期周期消息抖动在预算内6双通道切换切换后无重复数据字第 6 步是我吃过亏的地方双通道自动切换本身是协议给的冗余能力但切换瞬间如果上层缓存没清会把上一通道的数据再上报一次现象是“切换后数据翻倍”。后来我每次做通道切换测试都强制在切换回调里清一次接收缓存再继续。这套 PPT 的价值在于把从字格式到 API 的链路串成了一条线真正动手时缺的往往不是概念而是“哪一步该看什么”。从那以后我每次上电联调都强制先挂 BM 跑一遍静默检查再按上面那张表逐步放行省下来的返工时间远比多花的那十分钟多。希望帮到你。本文还有配套的精品资源点击获取

相关推荐

ISO 15118-20 入门:车桩 V2G 通信协议与报文解析
ISO 15118-20 入门:车桩 V2G 通信协议与报文解析

简介:这份ISO 15118-20:2022英文原版标准面向电动汽车充电通信协议开发、车网互动(V2G)研究与测试认证人员,聚焦第二代网络层与应用层要求,为不同品牌车辆与充电设施之间的互操作、安全通信和智能电网调度提供统一技术… · 2026/11/3 13:22:05

ISO 15118-20充电通信入门:分层、SDP发现与TLS证书实战
ISO 15118-20充电通信入门:分层、SDP发现与TLS证书实战

简介:2022年发布的ISO 15118-20国际标准正式文本,聚焦道路车辆与电网之间通信接口的第二代网络层与应用层要求,面向电动汽车充电协议开发、车桩互联互通测试及智能电网研究领域的中高级技术人员,帮助解决不同品牌车型与充电设施之… · 2026/11/3 13:22:05

PPT制作全攻略:从学术到商业的演示设计
PPT制作全攻略:从学术到商业的演示设计

1. 项目概述"从学生到CEO"这个标题精准捕捉了不同职业发展阶段人群的核心痛点——如何快速生成符合场景需求的演讲PPT。作为一位经历过学术汇报、职场晋升到商业路演的过来人,我深刻理解每类场景对演示文档的差异化要求。学生党需要严谨的学术框架&#x… · 2026/11/3 13:22:05

物理世界与场景树的同步机制解析
物理世界与场景树的同步机制解析

1. 项目概述:物理世界与场景树的平行宇宙 "物理世界与场景树——两个平行宇宙的故事"这个标题揭示了计算机图形学中一个深刻的技术隐喻。在三维图形开发领域(如游戏引擎、虚拟现实系统),开发者需要同时管理两种截然不同… · 2026/11/3 13:57:48

MySQL 9.0 Windows安装配置全指南
MySQL 9.0 Windows安装配置全指南

1. MySQL 9.0 Windows安装概述 MySQL作为全球最流行的开源关系型数据库管理系统,其9.0版本带来了诸多性能优化和新特性。在Windows平台上的安装过程虽然简单,但需要注意几个关键环节才能确保数据库服务的稳定运行。本文将基于官方文档和多年DBA经验&… · 2026/11/3 13:57:48

DeepSeek本地化部署指南:Ollama与Chatbox实战
DeepSeek本地化部署指南:Ollama与Chatbox实战

简介:这份PDF资料面向希望在个人电脑上离线运行DeepSeek模型的开发者与AI爱好者,聚焦本地化部署这一实操场景,兼顾入门与进阶需求。内容围绕Ollama框架展开,涵盖从官网下载安装、按显存与内存条件选择1.5B至671B不同参数规模模型&… · 2026/11/3 13:57:48

本地部署Whisper语音转文字工具:Buzz安装配置与实战调优
本地部署Whisper语音转文字工具:Buzz安装配置与实战调优

1. 项目核心场景与选型思路 1.1 为什么要自己部署一个音频转写工具 先说个实际场景。上个月我在整理一批历史访谈录音,大概有二十多个小时,需要把里面的内容全部转成文字存档。试了几款在线工具,要么限制单次时长,要么上传后要等… · 2026/11/3 13:57:48

DeepSeek R1 vs OpenAI o1:技术路径、基准测试与选型指南
DeepSeek R1 vs OpenAI o1:技术路径、基准测试与选型指南

简介:这份文档面向人工智能研究人员、从业者及关注大模型竞争格局的团队,系统梳理DeepSeek与OpenAI在技术路线、应用场景与市场定位上的异同,可用于学术对比研究或企业战略规划参考。内容从两家公司的成立背景与愿景切入,重点比较… · 2026/11/3 13:57:48

数字孪生与AI如何重塑现代农业
数字孪生与AI如何重塑现代农业

1. 数字孪生与AI如何重塑稻米产业在浙江平湖的稻田里,一场静悄悄的技术革命正在进行。传统农业正通过数字孪生和人工智能技术实现质的飞跃——这不是简单的数字化改造,而是从育种到餐桌的完整产业链重构。作为深耕农业科技领域多年的从业者,我… · 2026/11/3 13:56:48

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战: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/2 13:10:28

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
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/3 6:04:24

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
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/3 5:52:46

STM32F411RE与MAX14431实现SPI隔离:工业现场抗共模干扰实战
STM32F411RE与MAX14431实现SPI隔离:工业现场抗共模干扰实战

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

ESP32+大模型AI硬件开发:从Demo到产品的8个工程问题
ESP32+大模型AI硬件开发:从Demo到产品的8个工程问题

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

基于MAX14431BAEE+与PIC18F85J10的SPI隔离方案设计与实践
基于MAX14431BAEE+与PIC18F85J10的SPI隔离方案设计与实践

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

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战: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/2 13:10:28

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
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/3 6:04:24

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
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/3 5:52:46

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码