自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(553)
  • 收藏
  • 关注

原创 【嵌入式开发】FreeRTOS 性能优化与调试技巧

优化方向技巧任务调度合理优先级、减少任务数、精确周期内存管理静态分配、内存池、合理堆大小中断处理保持简短、合理优先级代码优化高效数据结构、减少浮点运算调试工具SystemView、GDB、栈检测核心原则测量先行:优化前先测量性能指标定位瓶颈:找到性能瓶颈再优化循序渐进:小步优化,逐步验证希望这些技巧能帮助你打造更高效、更稳定的 FreeRTOS 系统!系列文章回顾FreeRTOS 实战入门:从项目代码学起FreeRTOS 任务调度原理与优先级设置实战FreeRTOS 内存管理策略与实战。

2026-05-11 15:01:29 603

原创 【嵌入式开发】FreeRTOS 实战项目架构设计

架构要素设计要点分层架构应用层 → 服务层 → 驱动层任务划分单一职责,合理优先级通信机制队列传递数据,事件组同步状态错误处理分类处理,看门狗保护资源管理静态分配为主,动态分配为辅可扩展性命令注册机制,状态机模式架构设计 checklist✅ 是否遵循单一职责原则?✅ 模块间耦合是否最小化?✅ 任务优先级是否合理?✅ 通信机制是否选择恰当?✅ 是否有完善的错误处理?✅ 是否有监控和调试手段?一个好的架构能让你的项目事半功倍。希望这篇文章能帮助你设计出优秀的 FreeRTOS 项目!

2026-05-11 14:58:23 245

原创 【嵌入式开发】FreeRTOS 任务间通信方式全解析

通信方式核心用途关键字队列固定大小数据传递事件组多事件同步信号量资源计数互斥锁临界区保护任务通知轻量级通知消息缓冲区变长消息流缓冲区流式数据选择建议简单通知→ 任务通知数据传递→ 队列多条件等待→ 事件组资源保护→ 互斥锁资源池→ 计数信号量变长数据→ 消息缓冲区流式数据→ 流缓冲区掌握这些通信方式,你就能灵活地设计任务间的协作机制了!下一篇预告:FreeRTOS 实战项目架构设计📝作者注:任务间通信方式的选择需要结合实际需求,没有绝对的优劣之分。

2026-05-11 14:49:22 287

原创 【嵌入式开发】FreeRTOS 中断管理与临界区保护实战

临界区是一段代码,在执行期间不能被中断打断,否则会导致数据不一致。// 临界区示例:共享资源访问// 临界区开始// 读取temp++;// 修改// 写回// 临界区结束如果在执行这段代码时被中断打断,可能会导致计数器值错误。概念要点中断安全函数使用xxxFromISR版本临界区保护或互斥锁中断优先级低于才能调用 APIISR 原则保持简短,快速退出核心原则中断中只能调用中断安全的 API临界区代码要尽可能短使用队列实现 ISR 与任务的通信合理设置中断优先级。

2026-05-11 14:45:54 230

原创 【嵌入式开发】FreeRTOS 内存管理策略与实战

内存分配方式优点缺点适用场景动态分配灵活,按需分配内存碎片,不确定时间复杂系统,需要动态创建静态分配安全,确定时间不灵活,编译时确定资源受限,实时性要求高最佳实践建议优先静态分配:任务、队列、信号量等优先使用静态方式合理估算内存:根据任务复杂度设置栈大小启用检测钩子:栈溢出、内存分配失败检测定期检查内存:使用监控掌握内存管理是嵌入式开发的必修课。合理的内存管理策略能让你的系统更加稳定可靠。下一篇预告:FreeRTOS 中断管理与临界区保护实战📝作者注。

2026-05-11 14:39:09 377

原创 【嵌入式开发】FreeRTOS 任务调度原理与优先级设置实战

概念要点调度策略抢占式,高优先级优先优先级数值越大优先级越高任务函数必须是,包含初始化和主循环上下文切换保存/恢复寄存器,实现任务切换关键函数vTaskDelay优先级设置原则紧急任务高优先级:如协议解析、中断处理周期性任务中优先级:如数据采集、通信后台任务低优先级:如状态监控、日志记录掌握任务调度原理和优先级设置,是成为优秀嵌入式开发者的必经之路。希望这篇文章能帮助你!📝 :任务优先级设置没有绝对标准,需要根据项目实际需求调整。建议从简单的优先级划分开始,逐步优化。

2026-05-11 14:35:33 266

原创 【嵌入式开发】FreeRTOS实战入门:从项目代码学起

/ 用位表示不同事件1// 用位表示不同事件 # define PROTOCOL_EVENT_ERR(1 << 0) // 第0位:错误事件 # define PROTOCOL_EVENT_OK(1 << 1) // 第1位:成功事件<<// 用位表示不同事件 # define PROTOCOL_EVENT_ERR(1 << 0) // 第0位:错误事件 # define PROTOCOL_EVENT_OK(1 << 1) // 第1位:成功事件0// 第0位:错误事件1。

2026-05-11 14:26:45 465

原创 奈奎斯特采样定理实战复盘:1kHz采样率采1kHz正弦波,为啥采出来全是0?

作为一名振动测试、数据采集行业的工程师,本以为奈奎斯特采样定理是本科数字信号处理入门基础,早已刻在脑子里。直到前几天现场调试数据采集仪,默认设置兰了采样率1kHz,去采集标准1kHz正弦波信号,结果上位机波形全程是一条零电平直线,完全看不到波形变化。我第一反应是传感器故障、接线接触不良,折腾半天找不到原因。奈奎斯特采样定理都忘了?瞬间尴尬到无言以对。理论背了无数遍,一到工程实操直接踩坑。为了彻底吃透原理、避免以后再犯低级错误,我把。

2026-05-08 09:27:22 30

原创 字节序问题分析:不同数据构建方式导致的结果差异

不同的数据构建方式会导致不同的结果。理解字节序的原理,选择合适的数据构建方法,对于确保通信协议的正确性至关重要。通过这个案例,我们可以看到,即使是看似简单的数据构建操作,也需要考虑字节序等底层细节,这正是嵌入式开发的魅力所在。正确的选择取决于目标设备或协议所要求的字节序格式。对于ADS125H02芯片,根据注释和测试代码,应该使用。存储数据,因为数组元素在内存中是连续存储的。构建数据,每个字节的位置都是固定的。

2026-04-24 11:37:02 255

原创 嵌入式Web服务器CGI机制深度解析:从浏览器请求到Linux板卡执行全流程

││──────────────────▶ │嵌入式Linux板卡││用户浏览器││┌────────────────────────────┐ │││◀────────────────── ││嵌入式Web服务器 (HTTPD)│ │└─────────────────┘HTTP响应││• 监听80端口│ │││• 解析HTTP请求│ │┌─────────────────┐││• 执行CGI程序│ ││客户端││┌──────────▼─────────────────┐ │。

2026-04-21 11:15:46 400

原创 我的创作纪念日

在有限的精力下,我选择轻量化、高质量的创作节奏:白天专注本职开发工作,利用夜晚、周末的碎片时间,梳理当天的实战案例、调试踩坑点与学习笔记。对我而言,写博客不仅是内容分享,更是自我复盘、梳理知识体系的绝佳方式,让碎片化的开发经验形成系统化沉淀。,精进 STM32 裸机开发、嵌入式Linux驱动开发、工业实时通信、硬件底层优化等核心能力,持续打磨寄存器操作、内核并发、外设驱动等硬核技术,拓宽技术深度与广度。,整理文章的过程,让我对底层硬件、代码逻辑、协议原理的理解更加扎实,实现了技术与认知的双向提升。

2026-04-16 11:33:00 346

原创 指针使用详解:从基础到实践

指针是地址:存储的是内存地址,不是实际值解引用获取值:使用操作符获取指针指向的实际值取地址获取指针:使用操作符获取变量的地址类型匹配:确保指针类型与指向的数据类型一致空指针检查:使用指针前检查是否为NULL内存安全:避免野指针和越界访问指针是C语言的强大特性,正确使用可以提高代码效率和灵活性,特别是在嵌入式系统开发中。通过理解指针的基本概念和常见用法,你可以写出更高效、更可靠的代码。

2026-04-16 09:24:12 230

原创 STM32 开发Modbus必看基础:寄存器、功能码、踩坑点全梳理

Modbus单个寄存器16位,STM32定义缓存必须用uint16_t数组存储;32位变量(uint32_tfloat),需要强制转uint8_t*拆分字节,再组合两个16位寄存器解析;不要用32位变量直接接收Modbus 16位数据,会出现数据错位。Modbus寄存器固定16位,是通信协议标准,和STM32 32位硬件寄存器无关;四大寄存器+对应功能码,是Modbus通信的核心,绝对不能混用;手册地址从1开始,代码地址从0开始,-1偏移是必做步骤;

2026-04-15 16:13:45 424

原创 Keil5调试避坑:函数return值监控全攻略(附实际问题解决)

很多开发者会遇到「断点打不上」「return值显示」「R0寄存器值异常」等问题,本文结合实际调试场景,总结return值监控的正确方法、常见坑及解决方案,帮你高效定位问题。「现象」:断点触发后,查看R0寄存器,显示值为0x08009634这类以0x0800开头的地址,而非HAL_OK(0x00)、HAL_ERROR(0x01)等预期返回值。「根本原因」:断点触发时,变量尚未创建。跳出后,直接查看R0寄存器,值即为函数return值(此时函数已执行完毕,R0稳定存储return值)。

2026-04-13 15:47:56 47

原创 从Linux小白到驱动开发者:为什么我必须在驱动中使用private_data

基于我的经验,我总结出了使用总是在open函数中设置private_data在其他操作函数中通过private_data获取设备信息配合适当的锁机制保护共享数据为多设备实例设计合适的数据结构在release函数中清理资源从最初的困惑到现在的熟练运用,机制让我深刻理解了Linux内核设计的精妙之处。它不仅仅是技术实现,更是一种设计哲学的体现。希望我的经验能够帮助更多开发者理解并正确使用这个重要的机制。记住:好的驱动代码,从正确使用private_data开始!

2026-04-09 14:39:57 235

原创 深入理解CRC校验算法:从CRC-8-ATM到通用实现原理

CRC校验算法是数据通信和存储中不可或缺的错误检测机制。CRC-8-ATM算法原理:多项式x⁸+x²+x+1,初始值0xFFADS125H02 CRC-2实现:基于CRC-8-ATM,取高2位作为2位CRC多种实现方法:位操作法、查表法、切片查表法其他常见CRC算法:CRC-8、CRC-16、CRC-32及其应用场景性能优化技巧:查表法提升性能,硬件加速方案实际应用案例:SPI通信、Modbus、以太网等错误检测能力:CRC位数越多,检测能力越强计算复杂度:嵌入式系统需要权衡性能与资源。

2026-04-08 10:55:05 402

原创 数电模电核心概念梳理:从基础到共模/差模

差模信号 (Differential Mode)定义:两个输入端信号大小相等、相位相反的分量物理意义:有用的信号,希望被放大数学表示电路符号:通常用Vin+和Vin-表示共模信号 (Common Mode)定义:两个输入端信号大小相等、相位相同的分量物理意义:噪声或干扰,希望被抑制数学表示例子:电源噪声、温度漂移、地线干扰模电处理连续世界,讲究精度、带宽、噪声数电处理离散世界,讲究速度、时序、逻辑共模/差模是连接两者的重要概念:,差模信号承载信息,共模信号承载噪声。

2026-04-02 19:03:50 202

原创 三极管详解

1.核心本质:三极管是电流控制型器件(B极小电流控制CE极大电流),这与MOSFET(电压控制型)不同。2.三种状态截止(关)、放大(线性控制)、饱和(开)。务必理解!3.两大用途开关和放大。4.NPN更常用:先吃透NPN型,PNP原理类似,只是电流方向和电源极性相反。5.动手是关键:用电路仿真软件(如EveryCircuit、LTspice)或买一个三极管套件(如S8050, 9013),按照开关电路接一下,用万用表测测各点的电压变化,理解会深刻十倍!

2026-04-02 18:57:54 327

原创 电路隔离:原理、实现与电路分析详解

特性光耦隔离变压器隔离电容隔离数字隔离器隔离电压中高高中中高速度慢-中中快很快功耗中高中低低成本低中中高集成度低低中高寿命有限长长长电路隔离是现代电子系统设计中不可或缺的技术,它平衡了信号/能量传输需求与电气隔离要求。正确理解和应用隔离技术,能够显著提高系统的可靠性、安全性和抗干扰能力。在实际设计中,需要根据具体应用场景,综合考虑隔离等级、速度、功耗、成本和尺寸等因素,选择最合适的隔离方案。

2026-04-02 18:53:46 412

原创 Linux 驱动开发流程(带最小可运行代码 + 通俗类比)

这个设备能干什么(open/read/write)cdev = 内核里的“设备通讯录”设备号 → file_operationsLinux 字符设备驱动的核心是通过 cdev,将设备号映射到 file_operations,从而让用户空间调用最终执行驱动代码。

2026-04-02 14:34:34 221

原创 【Linux驱动开发完全指南】从零开始搞定IMX6ULL驱动开发——小白入门 + 完整流程 + 面试攻略

多动手、多看内核源码。这篇文章从环境搭建到ADC/PWM子系统,基本覆盖了嵌入式Linux驱动入门所需的核心知识。但真正的理解必须来自实际敲代码、碰到报错、翻内核源码解决问题的过程。hello驱动→ LED驱动(GPIO子系统)→ 设备树重构LED驱动→ GPIO中断(按键)→ 中断消抖(定时器)→ 阻塞/非阻塞/poll/异步通知→ input子系统→ PWM/ADC子系统每一步都要真正跑通,不只是复制代码。🚀参考资料《Linux设备驱动程序》(LDD3)

2026-04-02 13:37:43 319

原创 VDAC和IDAC区别

电流信号在长线缆传输中,不受线缆电阻引起的压降影响,对电磁干扰也不敏感。:在工业控制中(如驱动4-20mA变送器),一个IDAC加一个精密电阻,可以构成非常简洁、线性的V-I转换电路。它直接输出电流,没有低阻抗输出级。在它的驱动能力内,无论负载电阻如何变化(在一定范围内),它都输出一个固定电压。:负载电阻过大时,输出电压可能超过其最大合规电压,导致电流无法维持恒定。:驱动重负载(低电阻)时,需要提供大电流,可能造成电压跌落或器件发热。在它的合规电压范围内,无论负载电阻如何变化,它都输出一个固定电流。

2026-04-02 13:28:24 386

原创 从手动注册到自动枚举:聊聊 Linux 设备发现的三种境界

没有自我介绍能力。CPU 无法通过物理总线直接问:“嘿,你是什么设备?”(比如 I2C 接口,CPU 只知道地址,不知道接的是电容屏还是加速度计)。I2C、SPI、LCD 屏、GPIO 控制的 LED/按键。在.dts或.dtsi文件中编写node。内核启动时解析 DTS,将其转换成结构体,随后与匹配。设备类型是否需 DTS 节点发现机制备注是DTS 解析匹配现代嵌入式开发核心USB/PCIe否协议自动枚举硬件自报家门旧式 Platform否静态 C 代码注册已基本淘汰,面试需知。

2026-04-02 11:27:39 254

原创 Linux 驱动文件操作函数全解析:小白理解

这些函数就像是一套。

2026-04-01 17:07:29 179

原创 OMAP-L138 McBSP与深度睡眠模式详解

McBSP是一种高速、全双工的串行通信接口,专为与音频编解码器、数据转换器等串行设备连接而设计。全双工通信:支持同时收发数据协议兼容性:支持TDM、I2S、SPI等多种串行协议独立时钟系统:收发时钟和帧同步信号独立可控数据处理能力:支持μ-law/A-law数据压缩扩展通道扩展性:最多支持128通道的多通道选择模式性能优化:内置缓冲FIFO,支持EDMA事件触发OMAP-L138的McBSP接口和深度睡眠模式是其在音频处理和低功耗应用中的核心优势。

2026-04-01 15:24:19 318

原创 C语言数组参数传递详解:从DAC53204驱动看指针与数组的关系

首先,让我们看看modeDAC53204_MODE_IOUT, /* CH0 电流输出 */DAC53204_MODE_IOUT, /* CH1 电流输出 */DAC53204_MODE_OFF, /* CH2 关闭 */DAC53204_MODE_OFF /* CH3 关闭 */CH0和CH1设置为电流输出模式CH2和CH3设置为关闭状态数组名自动转换为指针:传递的是数组首元素地址无数组拷贝:提高了函数调用效率函数接收指针:可以通过指针运算访问数组元素长度信息丢失。

2026-04-01 13:47:35 491

原创 DS18B20/M1820温度传感器:IO模拟 vs 串口模拟实现深度对比

DS18B20和M1820是广泛使用的单总线数字温度传感器,它们采用独特的1-Wire通信协议。在实际嵌入式开发中,实现1-Wire协议主要有两种方式:GPIO模拟和UART模拟。本文将以实际项目代码为例,深度对比这两种实现方式的原理、优缺点和应用场景。1-Wire协议是Dallas Semiconductor(现Maxim Integrated)开发的单线通信协议,具有以下特点:GPIO模拟是通过软件精确控制GPIO引脚的电平变化来模拟1-Wire时序:2.2 完整代码示例2.3 GPIO方案优缺点

2026-03-26 19:22:43 384

原创 Keil5调试器变量监控完全指南

所有变量都可以被监控,只是监控条件不同全局变量和静态局部变量:任何时候都可以监控局部变量:只能在函数执行期间监控调试器通过符号表和栈帧信息来定位变量正确的监控时机是成功监控的关键变量类型存储位置监控时机监控难度推荐使用场景全局变量数据段任何时候⭐系统状态、配置参数静态局部变量数据段任何时候⭐函数内部状态、计数器局部变量栈上函数执行期间⭐⭐临时计算、循环变量寄存器变量寄存器函数执行期间⭐⭐⭐高频访问变量堆变量堆上指针有效期间⭐⭐动态数据结构。

2026-03-25 17:28:25 337

原创 从裸机到Linux:嵌入式开发的三重境界全面解析

你已经有最宝贵的硬件知识,现在只需要学习如何在Linux这个复杂而优雅的系统中运用这些知识。每一步前进,都离"全栈嵌入式工程师"更近一步!掌握裸机开发是第一步,理解RTOS是质变,而Linux驱动开发则是开悟。本文将带你完成从单片机工程师到Linux驱动工程师的认知升级。

2026-03-20 17:08:49 167

原创 Linux设备与驱动深度联动:从数据结构到实战

通过理解设备与驱动的联动机制,你可以更好地设计和调试Linux设备驱动,实现硬件与软件的完美配合。

2026-03-20 17:01:14 50

原创 Linux设备与驱动:从代码层面彻底理解二者的分工与合作

一个设备可以有多个驱动(如USB设备可以有USB驱动和HID驱动):x86使用ACPI,ARM使用设备树,嵌入式系统可能用硬编码。理解这种设计思想,是掌握Linux设备驱动开发的关键!:驱动从设备代码获取资源信息,实现硬件无关。Linux内核采用这种分离设计是为了实现。(描述硬件有什么资源、叫什么名字),(描述如何操作这类硬件),(负责把设备和驱动配对)。:设备与驱动必须一一对应。:驱动需要硬编码设备地址。:设备可以是虚拟的(如。:所有系统都需要设备树。:设备必须是物理硬件。

2026-03-20 16:51:07 218

原创 Linux设备驱动模型:深入理解设备、驱动与总线

是知道如何操作硬件的代码。它告诉系统:“我知道如何操作这类硬件,把匹配的设备交给我吧!,是硬件实体的软件表示。它告诉系统:“这里有一个硬件,这是它的地址、中断、资源…,负责将设备和驱动配对。它知道:“这个设备应该由哪个驱动来控制。,这是Linux设备模型设计的精髓所在。这个中介协同工作,实现了硬件与软件的。

2026-03-20 16:45:48 201

原创 ACPI详解:现代计算机电源管理的基石

ACPI虽然复杂,但它是理解现代计算机系统如何管理电源和硬件配置的关键。随着计算平台的发展,ACPI继续演进,支持新的硬件特性和安全要求。,由ACPI Source Language (ASL)编译而成。操作系统中的AML解释器执行这些字节码。ACPI表是存储在固件中的数据结构,操作系统通过它们了解系统配置。它定义了操作系统如何发现、配置和控制计算机硬件的电源管理功能。ACPI命名空间是一个层次化的对象树,表示系统中的所有设备。

2026-03-20 09:26:43 443

原创 ALSA子系统:Linux音频架构的全面解析

统一的音频架构:从内核到应用层的完整解决方案硬件抽象:支持各种音频硬件插件系统:灵活的音频处理管道专业特性:低延迟、多声道、硬件混音开源生态:广泛的应用和工具支持。

2026-03-20 09:10:39 453

原创 C语言数组参数传递的三种写法:从困惑到精通

数组参数传递的本质是指针传递,三种写法在编译后完全相同写法1:提供文档信息,提示调用者数组期望大小写法2:传统写法,表示"数组但大小未知"写法3type *name:最本质的写法,明确表达指针语义永远记住:在函数内部,sizeof(数组参数)返回的是指针大小// 最终验证:三种写法真的等价吗?// 答案是:在函数声明/定义时,三种写法完全等价// 但在函数指针类型声明时,有微妙差异:// 指向"接受int[10]的函数"的指针// 指向"接受int[]的函数"的指针。

2026-03-16 16:03:37 407

原创 PMBus深入解析:电源管理的通信总线

PMBus的优势标准化:统一的电源管理接口灵活:支持多种数据格式和命令可监控:实时监控电源参数可配置:运行时调整电源参数可扩展:支持多设备、多页面实现建议从简单开始:先实现基本的读写功能逐步增加功能:先支持LINEAR11格式,再增加其他格式充分测试:特别测试边界条件和故障情况考虑容错:添加超时、重试机制性能优化:对于高速应用,考虑使用硬件加速资源参考PMBus规范:PMBus官网(www.pmbus.org)应用笔记:TI、ADI、Maxim等厂商的应用笔记开源实现。

2026-03-16 11:31:26 857

原创 音频总线协议与接口全解析:IIS,SAI,McASP小白入门指南

协议(Protocol)是一种通信规则,规定了数据是如何在两个设备之间传输的。你可以把它理解为两个人对话时使用的“语言”和“语法规则”。协议关注的是数据格式、时序要求、信号含义等逻辑层面的东西。举例来说:I2S协议规定了音频数据应该如何打包、时钟和帧同步信号如何配合、每个bit应该在哪个时刻传输。接口(Interface)是硬件层面的连接通道,是实现协议所需的物理电路。你可以把它理解为“电话机”——虽然两人用普通话(协议)交流,但需要通过电话机(接口)来传输声音。

2026-03-13 15:47:06 339

原创 Linux 驱动核心接口:open / ioctl / mmap / select / close 全面对比与实战

IOW1int_IOR2int接口数据传输用途是否常用open否初始化设备必须read是从设备读数据常用write是写设备常用ioctl否控制设备很常用mmap是共享内存高性能设备否事件通知异步设备close否释放资源必须。

2026-03-13 13:30:10 620

原创 OMAP L138 EDMA3 完全指南:从原理到实战(小白友好版)

ACNT(Array Count):一维“阵列”长度 → 单次传输的连续字节数(如32位数据即4字节,ACNT=4)。BCNT(Block Count):二维“帧”长度 → 一个帧包含的阵列数(如McASP一帧8个通道,BCNT=8)。CCNT(Frame Count):三维“块”长度 → 总共有多少个帧(如连续传输100帧数据,CCNT=100)。总传输字节数 = ACNT × BCNT × CCNT(示例:4×8×100=3200字节)。

2026-03-11 17:18:54 343

原创 OMAP L138 McASP实战指南:从入门到FPGA通讯精通(非音频场景)

需求:OMAP L138(McASP0)与FPGA(以Xilinx Artix-7为例)实现双向同步通信。参数:主模式(McASP生成BCLK和FS)、TDM模式、1帧8个时隙、32位数据位宽、BCLK=25MHz、FS=31.25kHz(每帧8个32位数据,25MHz/(8×32)=97.66kHz,可调整为100kHz)。数据流向:发送(McASP→FPGA):OMAP L138通过EDMA3将内存中的传感器指令数据传输到FPGA。

2026-03-11 17:08:17 302

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除