自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

不断debug,优化中……

关注 小昭debug,每日进步一点点,debug.....

  • 博客(153)
  • 资源 (3)
  • 收藏
  • 关注

原创 debug对于开发工程师很重要

在日常开发中,总会遇到一些出人意料的bug,程序跑飞,上电就挂,程序没有按预期执行诸如此类的问题,没有好的调试方法,真的很难定位问题,更别说解决了。在这里分享我用过的一些调试方法,抛砖引玉。

2024-09-10 22:45:34 1496

原创 DoIP诊断入门

DoIP(Diagnosis over Internet Protocol)是一种用于车辆诊断的网络通信协议。它基于现代互联网技术,允许通过以太网或IP网络进行车辆诊断和通信。DoIP的背景是现代车辆中使用的电子控制单元(ECU)数量不断增加,以及这些ECU之间需要进行更快速、更可靠的数据交换。传统的诊断方法通常使用专用的物理连接和协议,限制了诊断的速度和灵活性。而DoIP利用了以太网和IP网络的优势,使诊断设备能够通过网络连接到车辆的ECU,实现远程诊断、编程和数据交换。

2023-08-13 16:44:29 938

原创 常用加密算法常识,保护你的程序

非对称加密(Asymmetric Encryption),又称公钥加密,是一种加密技术,它使用一对密钥进行加密和解密。这对密钥包括和。

2024-09-10 22:51:12 684

原创 Autosar--Can收发器通俗讲解

Autosar网络管理的休眠唤醒功能,Can收发器起到比较大的作用,充当唤醒源以及最终执行网络休眠。Autosar--Can收发器通俗讲解唤醒/休眠请求进入normolComM_EcuM_WakeUpIndication 有唤醒源事件CanSM_RequestComMode 有通信请求CanSM_NetworkStatemachine() 更新CANSM状态CanIf_SetTrcvMode() 进入normal。

2024-09-09 03:09:34 336

原创 一文带你画PCB板,有手就行

整流二极管主要用于防止电流倒流和保护电路。开关二极管适用于高速开关和脉冲信号处理。稳压二极管用于电压稳压和提供参考电压。

2024-08-25 00:23:16 1415

原创 Autosar_MCAL_Port

PORT Driver就是对微控制器(MCU)的整个PORT模块进行初始化配置。很多端口和管脚被分配有多种不同的功能,即可以进行引脚功能复用,比如通用I/O、adc、pwm、spi等功能。因此,对PORT必须有一个整体的配置和初始化,对各管脚的具体配置和使用取决于微控制器和ECU的引脚功能分配。PORT初始化数据应当尽可能高效地写到每个端口。DIO驱动中所用到的端口的配置和初始化都是在PORT驱动模块中完成的。因此,在使用DIO功能之前,应先进行PORT的初始化。1、PortContainer说明。

2024-08-22 21:45:03 77

原创 Autosar_MCAL_Adc

ADC主要是作为模拟量转换为数字量使用,在汽车的控制器中具有广泛的用途。AutoSAR中ADC模块用于初始化并控制微控制器的内部模数转换单元,提供启动和停止转换的服务用来启用和禁用ADC转换的触发源。此外,ADC模块还提供了启用和禁用通知机制服务来决定是否将ADC转换完的结果通知给上层应用,同时ADC模块提供了用于查询转换状态和读取转换结果的功能。目标:设置PTC14引脚为ADC信号采集功能。2、Port模块,将引脚复用成ADC。1、在Mcu模块,使能ADC时钟。依赖Mcu、Port。

2024-08-22 21:44:28 94

原创 MCAL--CAN (S32K144)

Can邮箱,顾名思义,收到制定的报文,才会放到邮箱,并触发中断,来处理报文数据,所以可以通过邮箱接收的方式,接收制定报文ID才进入中断,避免频繁进入中断,增加CPU的负载。当接收报文ID,CAN硬件过滤器receiverID & MASK == CODE&MASK 进行对比。BASIC:可以存放多个ID的报文,依赖硬件滤波器CanFilterMasks。当CAN邮箱配置成BASIC时,需要配置硬件滤波器。FULL:只能存放一个ID的报文。,就位于相位缓冲段2开始的地方,CAN控制器和CAN邮箱。

2024-08-22 15:13:04 189

原创 MCAL--MCU (S32K144)

AutoSAR中MCU Driver主要提供了用于基本的控制器初始化、下电、复位功能的服务,同时也为其它MCAL层需要的功能提供对应的服务函数。通常来说在AutoSAR的架构中MCU主要支持以下几个功能:1.初始化控制器的外设时钟、系统时钟、PLL等,对所有控制器内各个外设模块用到的时钟提供配置服务。2.初始化定义的RAM Section。3.为MCU的运行提供省电功能,支持MCU运行相关模式转化配置,支持整个系统复位,以及获取系统复位的原因。4.支持通用的模块的配置,比如DMA、GTM等。

2024-08-21 16:12:47 163

原创 Autosar ComM模块(communication manager)

中央处理单元,处理通信请求并管理数据流。核心职责包括信号处理、通信模式管理和网络管理。它是一个资源管理器,封装了对底层通信服务的控制。ComM 模块控制与通信相关的基础软件模块,而不是软件组件或可运行实体。ComM 模块从通信请求方收集总线通信访问请求,并协调总线通信访问请求。ComM作用:1、简化用户对总线通信栈的使用。这包括简化的网络管理处理。2、协调一个 ECU 上多个独立软件组件的总线通信栈的可用性(允许发送和接收信号)。用户不应了解硬件(例如在哪个通道进行通信)。

2024-05-05 21:41:05 1007 1

原创 Autosar EcuM上电流程 下

根据event Validation之后的结果选择进入不同的阶段,一种是验证有效,进入RUN 11阶段,另外一种是验证无效,进入Go Sleep阶段;若在该阶段存在RUN Request,那么就会立刻跳回到RUN 11阶段;RUN阶段可以划分为以下两个阶段,一个是RUN II,表示正常工作状态,另一个是RUN III,表示为进入到ShutDown所作的前提准备,顶层设计如下图所示:在RUN 1阶段则表明已完成了所有BSW模块(包括OS及RTE)的初始化,开始运行SW-C程序。

2024-04-06 22:57:49 306

原创 Autosar EcuM 上电流程 上

介绍EcuM模块,管理ECU运行状态,上电工作流程,规定上电时 Startup需要做什么操作,正常运行Run需要做什么操作,休眠Sleep时需要做什么操作,关机下电ShutDown做什么操作,唤醒Wakeup需要做什么操作,这五大流程管理。EcuM的初始化,在main函数里。

2024-04-06 22:57:10 434

原创 Autosar BswM 模式管理

BswM就是一个基于Rules的服务模块,主要工作就是上面讲到的根据制定的Rules,执行相应的Action。下图之前我们放过一次,这里多讲讲:可以看到这里有三个Auto Configuration,那都是DaVinci自动配置的部分,然后下面的Miscellaneous就是我们用户自己定义的部分(当然其实一般来说都不必自己定义对Rules的评估可以有两种形式的:立即 和 延迟立即:当然就是被call了之后立马开始了。

2024-04-06 22:56:20 151

原创 MCAL SPI配置

用的是Qspi0SpiDriver要配置 4个选项SpichannelSpiJobMcu 模块配置dma配置。

2024-04-05 16:00:53 118

原创 Autosar工具链配置 CanNM

网管报文btye设置:1、重复消息请求位设置 2、ECU地址。接收到主动唤醒源,网管报文快发周期,次数;wait bus-sleep 定时设置以及网管报文超时设置。repeat message time 超时时间。为保证ECU起来首发的报文是网管报文,网管报文范围0x600~0x6FF。ComM 要放在CanNm前执行。CAN网络管理filter。

2024-04-05 15:58:18 241 1

原创 Autosar CanNM 网络管理 状态机一下就懂

被动唤醒源是网管报文。进入Repeat Message State,会做两个动作, Start NM-Timeout Timer网管报文监听定时器开启,Start Repeat Message Timer定时器开启,发送网管报文,如果是主动唤醒源,会快发一段时间的网管报文。跳转条件:当Repeat Message Timer has expired,Start Repeat Message Timer定时器超时并且没有网络请求(有主动唤醒源,被动唤醒),会跳到Ready Sheep State。

2024-04-05 15:57:45 1365 2

原创 UDS升级入门,手把手教你———MCU相关驱动功能实现

进入用户程序时,main函数一定要对中断向量表进行偏移.如果不偏移中断向量表还是用boot中,所以需要对中断向量表偏移到用户程序中。在跳到用户程序前,需要设置用户程序MSP堆栈指针,以及reset入口地址。MOV SP, R0 //R0的数值 其实就是参数r0_msp。500k 波特率,设置滤波器,只允许两个诊断物理寻址通过。设置毫米级的定时器 Tim3,用于UDS中的心跳时钟。在BIN目录下即可找到LED.bin文件。解释下为什么是这样写?

2024-03-26 01:21:07 506

原创 UDS升级入门,手把手教你———诊断服务UDS CANTP

参考资料《ISO14229-1》

2024-03-26 01:13:22 613

原创 UDS升级入门,手把手教你———需求细节

11、驱动下载$34, $36, $37, $31: Flash 驱动的下载应该按照如下时序来进行:请求下载、传输数据、请求传输退出。6、例程控制“检查预编程条件” $31 $01 $02 $02:通过物理寻址检查 ECU 预编程条件,从而确保系统安全,预编程条件由 ECU 决定,如果有任何不安全的因素, ECU 应该拒绝编程,此例程控制不需要安全访问。10、安全访问$27 $07/$08:编程事件必须通过安全访问,确保只有授权的诊断仪能对 ECU 进行编程操作。2、$212特定报文,保持boot。

2024-03-25 00:15:33 627

原创 UDS升级入门,手把手教你——开篇

STM32软件生态比较好,资料多,是比较容易上手的一款MCU。本专栏的目标是UDS 刷写升级,后续换成NXP infinite renesas等芯片平台,基本把驱动部分做好,上层的协议移植过去,很快就能适配完成。如果中间需求有漏或者理解发生偏差,会耽误整个开发周期,所以理解需求是很重要的。设计一个灵活和可靠的OTA升级流程,可以适应不同的硬件。前面关于OTA的文章,写的比较乱,索性整了一个专栏,来认真梳理下,话不多开整。2、MDK环境,STM32F103,vscode。MCU开发环境,调试。

2024-03-25 00:13:37 670

原创 UDS升级入门,手把手教你——QT上位机开发1

新建立一个工程,或者网找一个demo工程,在原有的基础进行开发(建议使用第二种)。目标:以500k/s的波特率与MCU进行CAN通信,可发可收。需要用到周立功 相关接口,拿到库文件,进行二次开发。选择正常模式、单滤波、500kbps、报文全接收。并链接上这个库,进行can通信开发。以下就是库,暴露出来can通信接口。具体接口使用可以看文档。CAN设备:开启和关闭。

2024-03-24 00:56:11 876

原创 SWC Runnable

在 AUTOSAR 中,我们在配置期间在 SWC 中创建 Runnable,并且 在 SWC 的相应源文件中生成Runnable 或函数骨架。这样的条件可以在配置时定义,条件可以是:初始化时调用的Init Runnable、定期调用runnable可用于发送一些周期性数据、基于不同RTE事件的触发等。我们知道,对于 ECU 中的每个功能,SWC 都可以是专用的,但其行为或功能的实现是使用 Runnable 完成的。数据接收事件:顾名思义,每当端口接收到数据时,此类事件就会触发一个可运行的事件。

2024-03-03 20:27:00 306

原创 SWC ports and port interface

由于 AUTOSAR 的目标是标准化,因此需要在配置时了解实体之间传输的数据,因此端口也不例外。端口接口是定义两个端口之间传输或接收的信息类型的接口。端口接口就像端口的蓝图,它定义了 SWC 端口遵循的“协议”。端口接口配置是在系统配置时完成的,并且该接口应遵守的端口被分配给这些端口。当实体之间传输的数据是异步类型时,使用这种类型的接口。标准化 AUTOSAR 接口:标准化 AUTOSAR 接口由 AUTOSAR 预定义,应用程序 SWC 在与 ECU 管理器等 BSW 服务交互时使用该接口。

2024-03-03 20:07:18 171

原创 Appl swc

由于 AUTOSAR 软件架构的分层性质不允许上层直接访问硬件,因此需要一个额外的概念来绕过此限制,特别是对于资源关键型和/或不符合 AUTOSAR 的软件组件。正是在这里,复杂设备驱动程序出现了。复杂设备驱动程序基本上为应用程序层提供了 AUTOSAR 接口,从而可以直接访问物理层上的值。复杂驱动程序的概念对于需要直接访问 ECU 上的硬件设备的应用程序组件非常有用。喷射控制或电子阀门控制应用是需要直接访问硬件的此类应用的很好的例子。

2024-03-03 20:05:26 93

原创 Autosar Appl介绍

AUTOSAR架构中的应用层AUTOSAR 应用层构成AUTOSAR 架构中的最顶层,被认为对所有车辆应用至关重要。AUTOSAR 标准使用“组件”概念指定应用层实现。这些软件组件通过明确定义的端口进行连接。这些端口有助于软件组件之间以及与AUTOSAR BSW之间的通信。在应用程序软件组件的上下文中,有一些称为 Runnable 的实体,它们基本上是包含软件组件实际实现的过程。可运行或可运行实体在 VFB 规范中定义,并且是原子软件组件的一部分(在后面的部分中描述)。

2024-03-03 20:04:22 241

原创 Mcal篇 配置Dio模块输出

Mcal篇 配置Dio模块输出

2024-02-25 22:17:39 185

原创 Autosar 开篇

AUTOSAR(Automotive Open System Architecture)是一个跨汽车行业的标准化软件架构,旨在促进汽车电子系统的开发和部署。下面是AUTOSAR发展的一些关键点:起源和背景: AUTOSAR最初于2003年由汽车制造商宝马、戴姆勒克莱斯勒、福特和供应商博世联合发起,旨在应对汽车电子系统日益复杂的挑战。这些挑战包括不断增长的软件代码量、硬件和软件之间的紧密耦合,以及不同汽车制造商之间的差异化。标准化软件架构: AUTOSAR致力于建立一个标准化的汽车软件架构,以便不同汽车制造商

2024-02-25 21:56:09 101

原创 UDS升级入门,手把手教你——OTA升级时序

( d)写入数据$2E $F0 $11:在擦除内存例程( $31 $01 $FF $00)执行之前, ECU 需要将应用数据指。注:如果 ECU 在未收到“检查预编程条件”例程($31 $01 $02 $02) 的情况下,收到“ $10 $02”请求,( c)驱动下载$34, $36, $37, $31: Flash 驱动的下载应该按照如下时序来进行:请求下载、传输数。( f)下载过程$34, $36, $37:应用程序或数据的每一个连续的数据块下载到 ECU 非易失性内存中,ECU 应该在跳转到。

2024-02-15 23:55:43 1489

原创 Autosar Can模块介绍

在AUTOSAR(汽车开放系统架构)中,CAN(Controller Area Network)模块以及相关的模块之间有着密切的关系,这些模块包括CANIF(CAN Interface)、CANNM(CAN Network Management)、CANTP(CAN Transport Protocol)、CANSM(CAN State Manager)和CANTRCV(CAN Transceiver)。CANIF负责提供一个抽象的接口,允许上层模块与CAN模块进行通信,而不需要了解CAN硬件的细节。

2024-02-14 21:55:39 1464

原创 Autosar 网络管理 NM

Autosar网络管理之所以重要,可以用比较通俗的话来解释:想象一下汽车是一个庞大的交流团队,每个成员都是一部分的电子控制单元(ECU)。这些成员之间需要不断地交换信息,就像团队成员需要沟通一样。而Autosar网络管理就好比是团队的领导,负责协调和管理成员间的交流,确保信息传递顺畅,工作高效。为什么需要这个领导呢?因为随着汽车电子系统的发展,团队成员(ECU)越来越多,信息交流变得更加复杂。如果没有好的领导(Autosar网络管理),可能会发生混乱、信息丢失或者冲突。

2024-02-03 22:24:22 1199

原创 ISO 14229和UDS:汽车诊断的黄金标准

UDS是Unified Diagnostic Services的缩写,全名统一诊断服务。它是一种用于汽车电子控制单元(ECU)之间进行诊断和通信的标准协议,属于ISO 14229标准的一部分。UDS的起源和背景:UDS的起源可以追溯到对汽车电子系统的不断发展。随着车辆电子控制系统的普及,不同厂商采用不同的硬件和软件架构,导致了诊断工具之间的不兼容性。为解决这一问题,UDS作为一种标准化的诊断服务协议应运而生。

2024-01-27 19:54:40 1159

原创 Git常用命令

从工作的角度来看,掌握Git是提高团队协作效率、代码质量和个人职业发展的重要一环。在现代软件开发中,很难想象没有一个强大的版本控制系统是如何维护和管理代码的。

2024-01-14 23:30:59 1038

原创 CVTE面经 非双一流逆袭C厂

非双一流,学历并不出众,但是凭借在大学做过比赛项目经验,和面试总结,以下是我面试CVTE总结。岗位:CVTE 嵌入式软件开发工程师 (linux)面试流程:一共是四轮面试 + 一轮实习考核(春招)

2024-01-02 09:22:27 1238

原创 tensorflowhe pytorch介绍

在本篇博客中,我们将深入探讨这两个框架的核心特性,对比它们的优势和不足,并且探索它们在不同场景下的适用性。TensorFlow的这些特性和应用案例表明了它是一个多功能、适应性强的工具,无论是对于刚入门的学习者还是寻求高效开发和复杂模型部署的专业人士都是一个极佳的选择。PyTorch凭借其友好的API和强大的灵活性,已经成为许多研究人员和开发者进行深度学习实验和开发的首选工具。最终,无论选择哪个框架,重要的是理解它们各自的优势和局限性,并根据项目需求、团队技能和未来规划做出明智的选择。

2023-12-20 00:01:33 132

原创 http协议入门

HTTP(Hypertext Transfer Protocol)是互联网上应用最广泛的协议之一,专门用于在网络间传输超文本数据,如网页。它是一个客户端-服务器协议,意味着请求由用户(客户端)发出,服务器则响应这些请求并提供所需的资源,例如网页、图片或视频。HTTP的重要性在于它是现代网络通信的基础。几乎所有的网上活动,包括网页浏览、在线购物、流媒体观看等,都是通过HTTP协议完成的。它支持灵活的数据传输,允许网页包含丰富的格式,如文本、图像和视频,并支持各种互动功能。

2023-12-18 23:59:05 124

原创 手写RTOS准备

简单的RTOS可能只需要基本的静态内存分配,但在更复杂的系统中,可能需要动态内存分配和释放。这些是用于任务同步和互斥的关键工具。HAL作为RTOS和具体硬件之间的中间层,可以隔离硬件相关的细节,使RTOS的核心功能独立于任何特定的硬件平台。对于一个简单的实时操作系统(RTOS),实现一个基本的内存管理系统是重要的。实现这些功能时,需要注意定时器的精度和可靠性,这对于RTOS的性能和响应能力至关重要。通过实现一个有效的硬件抽象层,您的RTOS将能够更容易地适应不同的硬件环境,从而大大增强其可移植性和灵活性。

2023-12-18 23:58:29 169

原创 架构师和软件架构

软件架构是构建任何软件系统的基石。它不仅关乎技术,更关乎构建解决方案的方法论和思维模式。

2023-12-17 11:17:17 154

原创 数据结构 数组与字符串

定义和声明:数组的初始化:对于动态分配的数组,可以使用循环或指针运算进行初始化。例如,使用****分配数组后,可以遍历数组并赋值:注意,使用****分配的数组不会自动初始化。在初始化之前,数组的内容是未定义的。数组索引和遍历:使用循环遍历:数组通常使用循环结构遍历,**循环和**循环都是常见的选择。例如,使用**循环遍历上述的**数组:循环中的索引使用:遍历多维数组:对于多维数组,需要嵌套循环来遍历。例如,遍历一个2x3的二维数组:注意事项性能考虑:在嵌套循环中,特别是处理大型

2023-12-16 23:34:01 124

原创 arp协议

在探讨计算机网络的复杂世界时,我们不可避免地会遇到地址解析协议(ARP)。ARP协议扮演着一个关键角色,它允许网络设备在发送数据时确定目标设备的物理地址,即媒体访问控制(MAC)地址。但为什么这一步骤如此重要?让我们先了解一下网络的基本构成。在大多数现代网络中,设备通过IP地址进行通信。然而,虽然IP地址是用于识别网络上的设备的,但在实际的数据传输过程中,还需要设备的物理地址,即MAC地址。这里就是ARP发挥作用的地方。简单地说,ARP的核心功能是将网络层的IP地址“翻译”为链路层的MAC地址。

2023-12-16 09:38:35 273

原创 神经网络基础

定义神经网络,特别是在计算机科学和人工智能领域,是一种受人类大脑结构和功能启发的算法模型。它是一种模拟人脑处理信息方式的数学模型,用于识别复杂模式和关系,处理数据。这种网络由大量互联的元素(或节点)组成,这些节点通常被组织成层次结构。模仿人类大脑的工作方式神经网络的设计灵感来自人类大脑的神经元网络。在大脑中,成千上万的神经元通过突触连接,并传递电信号。在神经网络中,每个“神经元”或节点接收来自其他节点的输入信号,对这些信号进行处理,并产生输出信号传递给其他节点。

2023-12-16 09:36:13 225

doip抓包数据,带诊断数据

doip抓包数据

2024-09-22

零基础速成simulink代码生成-DBC文件CAN报文+stateflow 5 模型代码

零基础速成simulink代码生成——DBC文件CAN报文+stateflow 5 模型代码 ; 此专栏面向嵌入式工程没有matlab开发经验的人,可以快速学习和实践这门技术。MDB技术,越来越成熟和普遍,从手写代码转到基于模型开发已经是大势,不仅减少开发周期,还增加代码的复用性。汽车领域、医疗和算法建模广泛使用。

2023-06-23

零基础速成simulink代码生成-结合CANOE的DBC文件CAN报文代码生成 移植到硬件4 模型

零基础速成simulink代码生成——结合CANOE的DBC文件CAN报文代码生成 移植到硬件4 模型;此专栏面向嵌入式工程没有matlab开发经验的人,可以快速学习和实践这门技术。MDB技术,越来越成熟和普遍,从手写代码转到基于模型开发已经是大势,不仅减少开发周期,还增加代码的复用性。汽车领域、医疗和算法建模广泛使用。

2023-06-23

零基础速成simulink代码生成-stateflow基础3 例子

零基础速成simulink代码生成——stateflow基础3 此专栏面向嵌入式工程没有matlab开发经验的人,可以快速学习和实践这门技术。MDB技术,越来越成熟和普遍,从手写代码转到基于模型开发已经是大势,不仅减少开发周期,还增加代码的复用性。汽车领域、医疗和算法建模广泛使用。

2023-06-23

零基础速成simulink代码生成-简单滤波器实现2 简单滤波器模型

零基础速成simulink代码生成——简单滤波器实现2 此专栏面向嵌入式工程没有matlab开发经验的人,可以快速学习和实践这门技术。MDB技术,越来越成熟和普遍,从手写代码转到基于模型开发已经是大势,不仅减少开发周期,还增加代码的复用性。汽车领域、医疗和算法建模广泛使用。

2023-06-23

零基础速成simulink代码生成-matlab基础介绍1

零基础速成simulink代码生成——matlab基础介绍1 涵盖多个demo模型 此专栏面向嵌入式工程没有matlab开发经验的人,可以快速学习和实践这门技术。MDB技术,越来越成熟和普遍,从手写代码转到基于模型开发已经是大势,不仅减少开发周期,还增加代码的复用性。汽车领域、医疗和算法建模广泛使用。

2023-06-23

CANOE入门到精通-CANOE系列教程记录2

CANOE入门到精通——CANOE系列教程记录2

2023-04-30

Cortex-M内核系列和STM32-讲座,Cortex-M内核系列和STM32,现场保护和恢复现场原理

Cortex-M内核系列和STM32-讲座,Cortex-M内核系列和STM32,现场保护和恢复现场原理

2023-04-26

SPI_DEMO.rar

STM32主从双机SPI通信测试.(stm32f103与stm32f103、stm32f103与stm32f429)

2021-08-09

嵌入式常见经典笔试题.doc

嵌入式常见经典笔试题.doc

2021-08-02

室内定位UWB.zip

uwb点对多距离测试

2021-08-02

空空如也

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

TA关注的人

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