自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 CANFD收发异常问题记录

二:具体来说,CAN总线的一个位时间中包含两个缓冲段BS1和BS2: 在两个缓冲段中间的位置,即是读取总线电平的采样点位置,当检测到总线上存在相位差的时候,通过延长BS1段或缩短BS2段来获得同步,这样的方式称为重新同步。调试过程中,虽然通过降低电阻成功接收到了数据,但是一直处于一个不稳定状态,后来通过观察示波器发现电平切换瞬间状态有信号震荡,canfd电平采样点过前,采集到了震荡信号,虽然通过降低电阻提高了总线的负载功率抑制了震感时间勉强能够接收到数据,但是没有定位到根本问题,三:can总线电平采样点。

2025-03-10 14:50:57 544

原创 C#异步编程之async与await

在 C# 中使用异步编程(特别是使用async和await关键字)通常是为了提高应用程序的响应性和性能,特别是在需要进行 I/O 操作或执行长时间运行的任务时。

2025-02-26 14:22:22 616

原创 gd32H7定时器PWM输入捕获问题汇总

工程实际连接的时定时器2的ch1通道,由于没有太多参考例程,于是根据经验把ch0和ch1都配置了(这里时问题的关键,后面发现只需要配置一个通道),发现两个通道都能捕获了,但是一个周期后没有触发定时器复位,这就导致两个通道的捕获值一直递增,直到到达设定的溢出值自动重装定时器;这通常用于捕获外部信号的变化,以便进行频率和占空比的测量。这里需要与外部输入信号对应起来,否则就算定时器能捕获到数据,但是没法触发相应事件,与下文触发定时器复位密切相关,这也是为什么“定时器捕获后定时器不复位,后续捕获值很大”的原因;

2025-02-18 10:24:47 519

原创 标准库memcpy()内存对齐异常引发单片机hard fault问题汇总

我们之前使用的是ARM提供的轻量级 C 库(MicroLIB),但是后面引入了一些东西改用C标准库,发现memcpy会经常引起硬件故障hard fault ,然后发现是便准库memcpy内存对齐异常引起的;确实是对齐问题,默认定义变量地址都是对其的,但是使用的时候一般都会加偏移,偏移后没有对齐,标准库的这个函数也会引起硬件故障;1.起因:相同内容使用标准库的memcpy会引起硬件故障,使用自定义内存拷贝正常运行(无内存越界和堆栈溢出)有点像标准库函数有什么性能优化不太适配ARM;发现一个奇怪的现象;

2025-02-14 15:00:39 344

原创 轻量级 C 标准库(如MicroLIB)

轻量级 C 标准库()是为资源受限的嵌入式系统设计的,它去除了标准 C 库中一些不常用的功能,以减小代码体积和内存占用。

2025-02-13 13:17:20 197

原创 C语言常见头文件及引入功能

功能:GNU libmicrohttpd 库,用于创建嵌入式 HTTP 服务器。用于创建轻量级嵌入式 HTTP 服务器,适合需要提供 Web 服务的嵌入式系统。:将点分十进制 IP 地址转换为二进制格式。:将二进制 IP 地址转换为点分十进制格式。:将主机字节序转换为网络字节序(16 位)。:将主机字节序转换为网络字节序(32 位)。:将网络字节序转换为主机字节序(16 位)。:将网络字节序转换为主机字节序(32 位)。用于网络编程中的地址转换和字节序处理。:将时间转换为本地时间结构。

2025-01-16 13:46:25 699

原创 UCOS-III计次信号量与二值信号量

计次信号量允许多个任务同时获取信号量,发布的次数决定了可用的信号量数量。二值信号量只能表示“可用”或“不可用”,而计次信号量可以表示多个可用资源的数量,适用于更复杂的场景。具体来说,当你发布信号量时,计次信号量的计数会增加;因此,如果你发布了多次信号量,其他任务可以根据可用的信号量数量来获取相应的信号量。二值信号量只能表示“可用”或“不可用”,而计次信号量可以表示多个可用资源的数量,适用于更复杂的场景。例如,如果你发布了 5 次信号量,其他任务可以最多获取 5 次,直到信号量的计数降为 0。

2025-01-02 15:56:58 156

原创 pthread.h互斥锁与原子操作

原子操作是指在并发执行的环境中,某个操作要么完全执行,要么完全不执行,不会被其他线程中断。这种操作具有不可分割性和一致性。原子操作通常被实现为特定的 CPU 指令,这些指令可以在硬件层面上完成操作而不受线程切换的影响。

2024-12-30 11:19:09 610

原创 __attribute__((section(“RAMCODE“)))指定函数或者变量存放在特定内存段中

是一个 GCC 编译器的特性,用于指定某个函数或变量应该放置在特定的内存段中。"RAMCODE" 是分散加载文件中一个自定义的内存段名称,这里"RAMCODE"是指定在ram中的一个内存片段,用于加载高频访问的函数。以下是一个简单的例子,展示如何使用 __attribute__((section("RAMCODE"))) 将一个函数放置在特定的内存段中。在链接器脚本中,你需要确保定义了 "RAMCODE" 段,以便将其映射到 RAM 中。

2024-12-19 13:49:58 454

原创 通过ISTAT (Input Status Register)寄存器了解pcb走线是否正常

gpio口,单片机几乎所有外设输入输出的通用接口,各种收发数据对外界的连通都经过该外设,通过gpio的ISTAT (Input Status Register)寄存器可以有效排查pcb到mcu是否有数据输入,确认外围设备数据是否到达mcu,排查pcb断路或者设计问题;- 用于配置GPIO的运行模式和功能,比如设置为输入、输出或复用功能。- 用于设置特定GPIO引脚的输出状态,快速将引脚设置为高电平。- 用于配置GPIO的输出速度,影响信号的切换速度。- 用于选择引脚的复用功能,配置为特定外设功能。

2024-12-17 13:41:05 330

原创 GD32H7相关系统结构框图汇总

并且进入深度睡眠模式时将产生复位 (OB_DPSLP_RSTn。,并且进入待机模式时将产生复位 (OB_STDBY_RSTn。窗口看门狗计数终止(WWDGT_RSTn。独立看门狗计数终止(FWDGT_RSTn。用户选择字节寄存器nRST_STDBY。闪存地址重载及断点单元(FPB。调试接口 跟踪端口接口单元(TPIU。数据观测点及跟踪单元(DWT。嵌套式向量型中断控制器(NVIC。双精度浮点运算单元(FPU。外部引脚复位(NRST。指令跟踪宏单元(ITM。加载存储单元(LSU。数据处理单元(DPU。

2024-12-13 14:28:35 349

原创 浅拷贝之相同结构体变量相互赋值

在 C 语言中相同类型的结构体变量可以直接相互赋值。这种赋值会进行成员到成员的复制(浅拷贝)。在RTC_CLOCK 结构体中,所有成员都是 short 类型的基本数据类型,所以可以直接使用赋值运算符进行复制。它会将 utc 指向的结构体的所有成员值直接复制给 gmt8 指向的结构体。

2024-12-06 09:39:31 226

原创 LR (Link Register) ARM架构中的一个特殊寄存器(R14)

是ARM处理器的14号寄存器(R14),在异常/中断处理中会被自动保存和恢复,在需要多级函数调用时,需要手动保存LR的值到堆栈。在GD32中的应用中,主要用于函数调用和中断处理,编译器会自动管理LR的使用,一般不需要直接操作这个寄存器。1. 主要用于函数调用的返回地址存储。

2024-12-05 13:51:05 258

原创 编程过程中字段(Field)为什么叫字段

在计算机科学领域中,字段(Field)通常指的是结构体或类中的成员变量或属性。在面向对象编程中,字段用于存储对象的状态或数据。每个字段都有一个名称和一个类型,并且在实例化一个对象时,每个字段都会被分配内存空间来存储相应的数据。字段使得我们可以在对象中存储和访问不同类型的数据,从而描述对象的属性和特征。通过访问字段,我们可以读取或修改对象的状态,实现对对象的操作和控制。是一个字符串类型的字段,用于存储人员的名字;是一个整数类型的字段,用于存储人员的年龄。在结构体中,字段通常被称为。

2024-11-28 13:46:34 332 1

原创 #pragma pack(1)修改编译器对齐方式

默认情况下,编译器会按照特定的规则对结构体成员进行对齐,使得访问结构体成员时更加高效。对齐可以确保结构体成员被存储在内存地址的合适位置,避免因为对齐不当而导致的性能损失或者错误。此外,对齐还有助于确保结构体在不同平台上的一致性,提高了代码的可移植性。`#pragma pack(1)` 是一个用于告诉编译器如何对齐结构体成员的指令。在这个特定的情况下,`(1)` 指示编译器将结构体成员按照一个字节的边界进行对齐。这意味着结构体的成员将依次排列,不会按照默认的对齐方式进行填充。

2024-11-28 10:17:18 287

原创 const关键字修饰指针访问的内容只读,限制指针内存操作权限

关键字来声明指向常量的指针,这样就可以确保通过这个指针访问的内容为只读,不能被修改。通过声明指向常量的指针,可以确保通过这个指针访问的内容是只读的,从而避免对其进行修改。访问的内容是只读的,不能被修改。修改指针指向的内容,编译器会报错。在这段代码中,我们声明了一个整数变量。声明了一个指向常量的指针。在C语言中,可以使用。

2024-11-26 10:19:10 157

原创 GD32H7局域网控制器(CAN)---外设特征

种通信模式:正常模式,暂停模式,回环静默模式,和监听模式;支持发送优先级:最小邮箱号优先,或最高优先级优先。支持接收优先级,可配置在匹配阶段的接收邮箱和接收。字节数据长度,可灵活配置为发送或接收邮箱;支持通过一个特殊帧同步全局网络时间。3.支持发送和接收时间戳,基于。个邮箱,此时每个邮箱都配置为。字节数据,通信波特率最大为。字节数据,通信波特率最大为。器用于每个接收邮箱或者接收。模式,和虚拟联网模式;的标识符过滤功能支持最大。个扩展标识符的过滤,或者。公有过滤寄存器用于接收。

2024-11-20 10:20:54 404

原创 GD32H7局域网控制器(CAN)---邮箱和简介

2.0A/B ISO11898-1:2015 规范 BOSCH CAN-FD 规范。FIFO 具有标识符过滤的功能,最大支持208个标准标识符和104个拓展标识符的过滤,或者对标识符部分8位的过滤,最多有 32 个标识符过滤表元素,可通过接收 FIFO/邮箱私有过滤寄存器进行配置。CAN 帧的发送和接收,于存储控制数据,时间戳,消息标识符和消息数据。最大支持32个邮箱,邮箱可配置为接收FIFO,接收。无主机下,设备之间,相互通信的总线协议。

2024-11-20 10:06:30 848

原创 CAN总线采样点

一般来说,建议使用自动采样点配置功能(如果芯片支持),或者遵循CAN协议规范和芯片手册中给出的采样点设置建议。正确设置采样点可以减少这些干扰对信号采样的影响,提高通信的可靠性。在CAN总线通信中,采样点的设置对通信质量和可靠性有着重要的影响。采样点是用来判断CAN总线上的信号电平的时间窗口,它决定了在每个位的传输过程中,CAN控制器进行采样的时机。误码率:采样点的位置如果不准确,可能导致信号采样错误,从而导致误码率的增加。如果采样点太早或太晚,可能无法正确地采样到信号的边沿,从而导致数据错误。

2024-10-17 10:11:27 1082

原创 SRAM,DRAM,DTCM RAM,ITCM RAM

与传统的存储器(如内部 SRAM 或外部 DRAM)相比,DTCM RAM 更靠近 CPU 核心,读写操作的访问速度更快。与其他存储器相比,DTCM RAM 的成本可能会更高,因此它往往用于存储对性能至关重要的数据,而不是存储大量的数据。常用于D-CACHE高速缓存;1.SRAM:(Static Random Access Memory)一种静态随机存取存储器计算机系统和嵌入式系统中作为高速数据存储容器,SRAM 使用触发器电路来存储每个位的数据,而不需要定期刷新,具有较快的访问速度、低延迟和较低的功耗。

2024-10-10 13:43:18 877

原创 单片机内存保护-MPU(Memory Protection Unit)

这样,当程序试图访问受限内存区域时,MPU会检测到并触发异常或中断,防止非法操作对系统的破坏。1. 内存保护:MPU可以确保不同的任务或进程之间不能越界访问彼此的内存区域,从而防止程序间的错误或恶意代码的影响。4. 内存映射:MPU可以将物理地址映射到虚拟地址,提供了更灵活的内存管理方式,提高了系统的可移植性和可扩展性。2. 系统稳定性:MPU可以防止程序或数据的意外修改,保护系统的稳定性和可靠性。3. 安全性增强:MPU可以提供对敏感数据的保护,防止未经授权的访问。

2024-09-30 10:25:45 698

原创 can报文数据帧与远程帧

远程帧的标识符字段用于指示其他节点所需发送数据的标识符,而数据域为空。远程帧的作用是启动数据的请求和响应过程,允许节点在需要时请求其他节点发送数据。通过使用远程帧,节点可以根据需要获取所需的数据,从而实现更灵活和高效的通信。需要注意的是,远程帧在CAN总线上与数据帧共享相同的物理传输介质,只是数据域为空。因此,在CAN总线上传输远程帧和数据帧的方法和机制是相同的,只是处理远程帧时的数据域为空。数据帧的标识符字段用于标识报文的发送者或接收者,数据域中携带着要传输的数据。

2024-09-26 09:45:40 767

原创 CAN报文ID过滤

当CAN过滤器使用CAN_FILTERMODE_MASK模式时,过滤器将使用一个掩码和一个标识符进行比较,只有当接收到的CAN消息的标识符与过滤器设置的标识符按位与上掩码后得到的结果等于过滤器设置的标识符时,消息才会被接受。- 当CAN过滤器使用CAN_FILTERMODE_LIST模式时,过滤器将匹配通过滤器的标识符列表中的任何一个标识符。因此,CAN_FILTERMODE_LIST适用于需要接收特定标识符的场景,而CAN_FILTERMODE_MASK适用于根据位掩码规则进行过滤的场景。

2024-09-26 09:25:26 548

原创 环形队列保护共享资源的可靠性

3.1共享资源操作:向环形队列写数据,主要对应写索引(注意写索引一定要等数据添加完毕了才移动,否则会导致共享资源混论:提前标记了数据被写入,实际数据还没来得及写入,就被读取api操作,造成数据混论),写入之前要判断队列是否有空想位置(写指针加一不等于都指针:写指针不能追上读指针),然后再写入数据,最后再操作写指针移动位置。5.这样就可以防止多线程操作或者中断操作,造成共享数据混乱,当然在多线程中可以使用互斥量操作来阻塞共享资源的访问,但是在中断服务函数中不适用,中断服务函数一般不允许长时间阻塞。

2024-08-21 10:48:58 183

原创 原子操作与并发访问

原子操作提供了一种高级的同步机制,确保在对共享资源进行操作时,不会发生竞争条件或数据的不一致。原子操作是指在执行过程中不会被中断的操作,要么全部执行成功,要么全部不执行,不会出现中间状态。在并发编程中,常见的原子操作包括原子读、原子写、原子加、原子减、原子比较交换等。需要注意的是,原子操作并不意味着解决了所有并发问题,仅仅保证了对共享资源的操作是原子的。3. 可见性:原子操作对其他线程是可见的,其他线程可以看到原子操作执行前和执行后的状态。2. 原子性:原子操作是不可分割的,要么全部完成,要么全部不执行。

2024-08-07 13:20:13 359

原创 C语言---结构体位域数据存储

如果位域成员的长度超过了所属数据类型的位数,编译器可能会进行截断或者将其存储在多个字节中,导致预期的行为不一致。需要注意的是,位域成员的长度不能超过其所属数据类型的位数。另外,由于位域的布局和字节顺序在不同编译器和平台上可能会有差异,因此在使用位域时要注意代码的可移植性。在进行位操作时,应该确保操作的正确性,并注意位的位置和掩码的使用,以避免出错。这是因为位域成员在内存中通常不是按照独立的字节地址存储的,而是与其他位域成员共享同一字节。)来确保位域成员的长度是固定的,从而提高代码的可移植性。

2024-07-26 14:21:24 445

原创 【转发】---keil安装包及芯片包

keil资源包下载

2024-07-24 11:27:39 142

原创 ESP32 双线汽车接口 (TWAI)

它兼容 ISO11898-1 经典帧(CAN2.0),因此可以支持标准帧格式(11 位 ID)和扩展帧格式(29 位 ID)。ESP32 包含 1 个 TWAI 控制器,经配置可以在 TWAI 总线上使用外部收发器通信。TWAI的物理层通常使用双绞线(如双芯屏蔽电缆)作为传输介质,通过CAN收发器将数据发送到总线上。在软件层面,TWAI使用一套协议规定了数据传输的格式、帧结构和通信规则。总而言之,TWAI是一种用于汽车领域的数据通信接口标准,基于CAN协议,用于实现汽车电子控制单元间的高效可靠通信。

2024-06-21 17:01:30 1470

原创 【资源转发】---esp32选型参考

esp32选型参考

2024-06-14 16:18:49 179

原创 【资源转发】---FreeRTOS提供的8个消息队列函数api区别详解

freeRTOS提供的8个消息队列函数api区别详解

2024-05-28 09:36:12 133

原创 【日志记录】---编译器内存对齐优化导致结构体成员引用异常

如果你想要避免这种填充(在某些情况下,比如内存使用非常关键时),你可以使用特定的编译器指令或属性来控制对齐,但这通常不是推荐的做法,除非你有明确的理由。进一步调试发现原本3个字节大小的结构体,在内存中占用了四个字节的位置,这正是导致输出数据异常的原因,多出的一个字节导致数据引用出现了错位。在一个跨线程数据处理消息的时候出现了以下内存错位现象,在结构体指针引用的时候出现了成员数据异常。2.【目标结构体】线程B知道线程A该条消息的结构体,定义了专门的结构体来套字节流中的数据。后面可能有一个填充字节,以确保。

2024-05-07 16:53:53 345

原创 【可用资源转发】---esp8266 RTOS SDK 开发环境配置

esp8266RTOS SDK开发环境配置

2024-04-26 20:48:09 134

原创 【可用资源转发】---source insight配置文件导入

source insight配置文件

2024-04-24 14:56:47 394

原创 【可用资源转发】---ubuntu安装gitlab服务器

ubuntu安装gitlab服务器

2024-04-08 15:45:01 372

原创 【可用资源转发】---ubuntu系统安装教程

Ubuntu系统安装

2024-04-01 14:58:38 167

原创 【可用资源转发】------云服务器搭建frp实现主机内网穿透

frp搭建内网穿透

2024-03-25 15:52:31 163

原创 【可用资源转发】------交叉编译工具在线安装

交叉编译工具

2024-03-20 16:13:10 166

原创 【日志记录】------不同网段两台设备通信

子网掩码是一个32位的二进制数,其中的1表示网络地址,而0表示主机地址。因此,IP网段是通过子网掩码来定义的,具有相同网络地址的IP地址集合构成了一个网段。IP地址由网络地址和主机地址两部分组成,其中网络地址用于标识一个特定的网络,而主机地址则用于标识该网络中的某一台计算机。在局域网内调试设备的过程中,发现两台不在同一网段的设备实现了通信,IP地址为192.0.80.252的设备访问了IP地址为192.0.40.231的服务器。无论使用哪种方法,都需要对网络进行正确的配置和管理,以确保通信的安全和可靠性。

2024-02-19 15:58:51 770

原创 【日志记录】——主MCU 通过私有协议更新从MCU程序固件

异步协议方式:主MCU在程序传输过程中,从MCU不需要对每包程序进行应答,而是默默校验每包程序,当传输校验出错时或者出现丢包现象,包序号不连续,从MCU 会发出出错申请,告诉主MCU 当前传输位置,并继续传输,这种方式一定程序上降低了耦合性,减少了程序阻塞,提高了程序效率,但是实际在应用过程中,错误纠正处理机制往往相比同步协议方式更为复杂,另外还需要对两片MCU数据传输和处理速度做好匹配,毕竟是异步方式,当速度没有匹配在合适范围,就会出现通信错位的情况,虽然有纠错机制,但是最好不要有明显错位现象。

2024-02-03 14:24:25 939

原创 【日志记录】——单片机可执行文件合并

现在有一片单片机,执行程序包括自定义boot和应用程序app, 在将打包好的固件给到生产是有以下问题,由于要通过jlink烧录boot,然后上电启动boot,通过boot烧录初始化程序,过程过于复杂,流程步骤比较多,于是产生了现在这个需求再给到生产前直接将boot可执行文件与app可执行文件合并成一个固件,直接通过jlink一次性烧录完成。它的每一行都以冒号开头,表示记录的开始,然后是数据地址和数据内容。Hex文件的每一行都遵循上述结构,从冒号开始,然后是地址、长度、类型、数据和校验和,以回车换行符结束。

2024-02-02 16:58:43 1605

vlc-3.0.21-win64.zip - 视频码流查看工具 - h265/h264

vlc-3.0.21-win64.zip - 视频码流查看工具 - h265/h264

2024-12-16

UCOSiii 实验例程.zip

UCOSiii 实验例程.zip

2024-08-08

keil536.zip

keil536.zip

2024-07-24

USB教程与源码.rar

USB教程与源码.rar

2024-07-22

WCHISPTool-Setup.zip CH32烧录工具

WCHISPTool_Setup.zip CH32烧录工具

2024-07-21

CH32F103EVT.ZIP

CH32F103EVT.ZIP

2024-07-21

USB-CANFD TOOLSetup(V1.12).zip CAN调试工具

USB_CANFD TOOLSetup(V1.12).zip CAN调试工具

2024-07-09

vscode-open, vscode工作区批处理文件.bat

vscode_open, vscode工作区批处理文件.bat

2024-07-04

串口数据可视化绘图工具.zip

串口数据可视化绘图工具.zip

2024-06-12

esp32环境搭建 .zip

esp32环境搭建 .zip

2024-06-07

群Ping.zip 局域网ping工具

群Ping.zip 局域网ping工具

2024-06-05

HBuilderX.4.15.2024050802.zip

HBuilderX.4.15.2024050802.zip 嵌入式网页编辑工具

2024-06-03

OutputHex-Bin.bat keil批处理文档 bin文件hex文件根据版本号自动命名

OutputHex_Bin.bat keil批处理文档 bin文件hex文件根据版本号自动命名

2024-05-27

model-cmd-manage.zip 指令重发控制器

model_cmd_manage.zip 指令重发控制器

2024-05-21

TCPUDPDebug102-Setup.zip

TCPUDPDebug102_Setup.zip

2024-04-29

逻辑分析仪.zip usb逻辑分析仪工具

逻辑分析仪.zip

2024-04-28

esp8266 RTOS SDK 开发环境配置

esp8266 RTOS SDK 开发环境配置

2024-04-26

中文版(3.13.12.0).zip usb虚拟示波器

usb虚拟示波器

2024-04-25

source-insight4.0-hack.zip

source_insight4.0_hack.zip

2024-04-23

STM32 ST-LINK Utility v4.6.0.zip

STM32 ST-LINK Utility v4.6.0.zip

2024-04-23

Windows 虚拟串口对

Windows 虚拟串口对

2024-04-20

ssh-config.txt

ssh配置文件

2024-04-12

ubuntu下载源source.list

ubuntu国内下载源

2024-04-08

ubuntu镜像工具.zip

镜像制作工具

2024-04-08

.net4.6.1.zip

上位机常用环境

2024-04-07

单片机串口烧录工具.zip

flyMCU串口烧录工具

2024-04-07

keilkilll.rar

keil清理目标

2024-04-03

dbc文件编辑工具-can协议.zip

CAN 协议编辑查看工具

2024-04-03

电脑磁盘扫描工具,磁盘扫描

电脑磁盘扫描

2024-04-02

git-2.44.0.zip

GIT仓库管理

2024-03-29

everything - Windows文件快速查找工具.zip

everything安装版本,文件查找工具

2024-03-21

工程管理工具源码版本管理svn

svn

2024-03-08

.net framework版本集合.zip

.net framework版本集合

2024-02-03

日志记录-单片机可执行文件合并

bin文件合并工具

2024-02-02

WPF上位机框架-根文件.zip

wpf框架,静态函数方法类,上位机

2024-01-19

Elmos524.09.zip

Elmos524.09.zip

2024-01-08

文件夹对比工具.zip

版本对比工具

2024-01-04

CH340驱动.zip

CH340驱动

2023-11-23

ESP32-linux环境-编译指南.zip

ESP32-linux环境-编译指南.zip

2023-11-11

esp-web-serial-master-2023年11月10日.zip

esp-web-serial-master-2023年11月10日.zip

2023-11-11

空空如也

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

TA关注的人

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