自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LVGL基础以及移植

LVGL移植摘要 LVGL是一个轻量级嵌入式GUI库,专为MCU/MPU设计,提供丰富的UI组件和图形功能。移植LVGL需要满足最低硬件要求:16MHz+主频、64KB+ Flash、2KB+ RAM等。移植流程包括:添加LVGL源码、补全缺失API、初始化显示/输入设备、配置心跳定时器等。 关键点: LVGL负责UI逻辑组织,不直接驱动硬件 性能优化核心是缩短"绘制+搬运+刷屏"总时间 RT-Thread下移植需实现3个关键API:显示初始化、输入初始化、GUI入口 显示初始化需设置绘图缓冲区(单缓冲/双

2026-05-21 20:53:56 404

原创 音视频控制传输协议(AVCTP)

AVCTP是蓝牙音视频控制传输协议,负责封装和传输控制命令与响应。它基于L2CAP通道,支持双向控制,每个连接对应独立通道。AVCTP使用两个PSM:0x0017用于普通控制命令,0x001B用于媒体浏览。封包格式分为未分包和分包两种,包含事务标签、包类型、命令/响应标志等字段。AVCTP不定义具体控制内容,只提供传输框架,上层协议如AVRCP负责定义实际控制命令。协议支持分包传输,通过Start/Continue/End Packet类型实现大数据传输。

2026-05-08 20:56:27 446

原创 音视频分布传输协议(AVDTP)

文章摘要 AVDTP(音视频分布传输协议)是蓝牙协议栈中负责音视频流传输控制的核心协议。它位于L2CAP之上,主要负责媒体流的建立、协商、配置和状态管理。协议由信令控制、适配层、流管理和恢复机制等组件构成,提供基础媒体传输服务及可选的高级功能如丢包恢复和报头压缩。AVDTP定义了流端点(SEP)、传输会话等关键概念,支持设备间发现音视频能力并建立传输通道。该协议不直接处理播放控制语义,而是为上层音频协议(如A2DP)提供传输基础,实现从控制器到主机或直接通过外部编解码器的音频数据传输路径。

2026-04-07 18:43:27 481

原创 快速从C过渡到C++

本文提供了从C语言快速过渡到C++的实用指南,重点针对力扣刷题需求。主要内容包括: Hello World程序解析:对比C与C++的输入输出差异,介绍iostream头文件、命名空间和cout/cin用法。 基础语法差异:说明C++可直接使用bool类型,无需额外头文件;介绍C++调用C库函数的方法(如cstring替代string.h)。 字符串处理:重点讲解C++ string类的优势与常用操作: 创建与初始化 输入输出(cin和getline) 长度查询与判空 字符访问与修改 字符串拼接与比较 查找、

2026-03-30 23:11:55 454

原创 蓝牙免提协议(HFP)

蓝牙免提协议(HFP)是用于手机与耳机/车机间通话控制的蓝牙协议。HFP定义了两种角色:音频网关(AG)通常是手机,免提终端(HF)通常是耳机/车机。协议通过RFCOMM通道交互AT命令实现通话控制,语音数据则通过SCO/eSCO链路传输。建立连接需先通过SDP服务发现,HFP最小SDP属性包括服务类ID、协议描述列表等。SLC(服务级连接)建立过程包括功能交换、编解码协商等步骤,需完成规定的AT命令序列交互才能建立成功。协议支持多种特性如三方通话、音量控制、语音识别等,通过位图方式进行能力协商。

2026-03-29 00:17:53 490

原创 串口协议(SPP)

本文介绍了蓝牙串口协议(SPP)的基本概念和应用。SPP基于RFCOMM协议,为蓝牙设备提供虚拟串口功能,使无线通信像传统串口一样简单易用。文章详细阐述了SPP的协议定位、设备角色(Server/Client)、SDP服务发现机制以及完整的连接建立流程,包括ACL连接、SDP查询、L2CAP通道建立等关键步骤。SPP广泛应用于蓝牙打印机、GPS模块等设备,具有透明传输、双向通信等特点,但不被苹果设备支持。

2026-03-27 17:35:34 448

原创 串口仿真协议(RFCOMM)

RFCOMM的服务模型定义了设备类型、通信场景以及协议提供的服务接口。Credit-Based流控的核心要点启用条件:在PN命令协商时通过CL字段启用,不是在HCI初始化时Credit字段:只有当UIH帧的P/F=1时才携带Credit字段双向独立:每个方向的Credit由接收方管理精确控制:每发送1帧消耗1个Credit,Credit=0时必须停止高效补充:可以在数据帧中携带Credit,减少控制开销优势防止缓冲区溢出端到端精确流控减少控制帧开销可预测的发送行为与传统流控对比。

2026-03-25 23:18:54 443

原创 人机接口设备协议(HID)

摘要 蓝牙HID协议定义了人机接口设备的通信规范,包含两种角色:HID Host(接收设备,如电脑)和HID Device(输入设备,如键盘)。数据流向分为Input Report(设备→主机)、Output Report(主机→设备)和Feature Report(双向配置)。实现方式包括经典蓝牙的HID over L2CAP(使用PSM 0x0011控制通道和0x0013中断通道)和BLE的HOGP。关键流程包括SDP服务发现(获取Report Descriptor)和L2CAP双通道建立(先控制后中断

2026-03-24 21:57:11 618

原创 服务发现协议(SDP)

蓝牙SDP协议摘要(150字): SDP(服务发现协议)是蓝牙设备间查询可用服务的核心协议,采用客户端-服务器模式。SDP Server维护服务记录数据库,每条记录包含服务类UUID(标识功能)和协议描述符(说明连接方式)。关键属性包括ServiceClassIDList(标识服务类型)和ProtocolDescriptorList(定义连接协议栈)。UUID分为16/32/128位三种格式,其中UUID-16通过Base UUID转换。典型工作流程:客户端通过L2CAP(PSM=0x0001)连接查询服务

2026-03-24 21:01:44 488

原创 Linux进程详解

本文介绍了嵌入式Linux中进程与线程的基本概念、区别及应用场景。进程是资源分配的基本单位,拥有独立地址空间;线程是CPU调度的基本单位,共享进程资源。重点讲解了fork创建子进程的机制,包括父子进程的内存关系(COW机制)以及进程回收方法(wait/waitpid)。文中提供了阻塞和非阻塞两种回收方式,并强调了防止僵尸进程的重要性。最后给出了嵌入式开发建议:简单任务用单进程单线程,需要并发时考虑多线程,需要隔离时选择多进程。

2026-03-17 00:54:50 236

原创 文件IO讲解

本文介绍了Linux文件IO的基本概念和使用方法,重点讲解了系统调用IO和标准IO的区别及适用场景。详细说明了open和write两个关键系统调用的函数原型、参数、返回值和使用要点,并提供了典型使用场景和代码示例。文章特别强调了在嵌入式开发中系统调用IO的重要性,以及如何正确处理文件操作中的错误和部分写入情况。适合嵌入式Linux开发者学习参考。

2026-03-15 22:09:41 691

原创 Makefile讲解

本文介绍了Makefile的基本概念和常用语法。Makefile是用于管理项目编译的规则文件,核心规则为"目标:依赖",通过比较文件修改时间决定是否重新编译。文章讲解了通配符%、假想目标.PHONY、变量赋值方式(即时变量:=、延时变量=、追加+=、条件?=)以及常用函数(foreach遍历、filter/filter-out过滤、wildcard获取文件列表)。这些知识点可以帮助开发者编写简单的Makefile来管理中小型项目,提高编译效率。

2026-03-15 13:48:47 374

原创 GCC编译

本文介绍了GCC编译流程及多文件编程方法。主要内容包括:1) GCC编译四阶段(预处理、编译、汇编、链接)及各阶段命令;2) 多文件编译的两种方法(一步到位或分步汇编链接);3) 动态库(.so)与静态库(.a)的区别、制作及使用方法。静态库在链接时嵌入程序,动态库在运行时加载。文章提供了详细的命令示例,帮助理解从单文件到多文件、再到库文件的完整编译过程,适合嵌入式Linux开发者参考。

2026-03-14 23:22:42 374

原创 Linux与单片机程序对比

本文对比了裸机单片机程序与Linux应用程序的主要差异。单片机程序直接运行在硬件上,具有裸机运行、手动资源管理、中断驱动和硬实时性等特点;而Linux应用程序通过系统调用与内核交互,具有操作系统支持、虚拟内存管理、多任务并发和软实时性等特性。关键区别在于运行环境、硬件访问方式、资源规模和管理机制。从单片机转向Linux开发需要思维转变,从直接硬件控制转向抽象接口,从轮询转向事件驱动,从静态分配转向动态管理。Linux通过特权级隔离和系统调用机制确保应用层无法直接访问硬件寄存器。

2026-03-14 23:00:29 848

原创 链路控制协议(L2CAP)

本文介绍了蓝牙协议栈中的链路控制协议(L2CAP)及其核心概念。L2CAP位于协议栈中间层,负责多路复用、MTU协商、数据分段/重组、QoS配置等功能。文章详细解析了L2CAP中的关键术语(如SDU、PDU)、数据处理流程(分段/重组、分片/重组)、PDU帧类型(B/I/S/C/G/K帧)以及信道标识符(CID)在BR/EDR和BLE中的不同应用。L2CAP通过CID实现逻辑信道的多路复用,为上层协议提供数据传输服务,是蓝牙协议栈中承上启下的重要协议层。

2026-03-09 15:24:53 474

原创 MCU中部署TinyMaix

TinyMaix是一个专为MCU设计的轻量级神经网络推理库,具有以下核心特点: 极简架构:采用三层模块化设计(模型管理/算子实现/架构优化),核心代码仅400行,代码段小于3KB。 高效量化:支持INT8/FP32/FP16模型,通过Per-Channel量化和Bias预融合技术减少4倍内存占用,并针对无FPU芯片提供定点优化。 智能内存管理:采用Ping-Pong Buffer技术复用内存空间,MNIST模型仅需1.4KB RAM,支持静态内存分配。 跨平台支持:提供ARM/RISC-V/x86等多种架构

2026-03-08 16:32:54 555

原创 蓝牙HCI层(末)

蓝牙HCI层配对方式总结 蓝牙HCI层支持两种主要配对方式: Pin Code配对(传统方式): 适用于简单设备(如HC-05模块) 交互流程:控制器通过HCI_PIN_Code_Request事件请求主机提供PIN码,主机通过HCI_PIN_Code_Request_Reply/Negative_Reply命令响应 PIN码最长16位,不足部分补0 SSP配对(安全简易配对): 蓝牙2.1+引入,提升安全性和易用性 流程分为两个阶段: IO能力交换:通过HCI_IO_Capability_Request/

2026-03-07 20:21:30 458

原创 蓝牙HCI层(2)

蓝牙HCI层(2)笔记摘要 本文继续讲解蓝牙主机控制器接口(HCI)层的应用实现,重点分析HCI_Inquiry搜索流程: 命令发送:主机发送HCI_Inquiry命令,包含LAP过滤、搜索时长和结果数限制参数。 状态响应:控制器返回HCI_Command_Status事件确认命令接收状态,包含状态码、可接收包数和操作码。 结果上报:控制器通过HCI_Inquiry_Result事件上报发现的设备信息,包括设备地址、类别和时钟偏移等参数。 搜索完成:当达到时间或结果数限制时,发送HCI_Inquiry_Co

2026-03-07 20:03:21 592

原创 一文搞懂Bootloader

本文介绍了Bootloader的基本概念和两种经典架构设计。Bootloader是嵌入式设备上电后最先运行的程序,负责硬件初始化、程序加载和OTA升级支持。文章详细分析了"Bootloader+单区+标志位"和"Bootloader+双APP区"两种架构的存储布局和运行流程,其中双区设计通过备份机制提高系统可靠性。重点探讨了跳转APP的安全机制,包括向量表校验、硬件环境清理和寄存器设置等关键步骤,确保从Bootloader到APP的安全切换。

2025-11-24 23:04:03 1494 3

原创 ESP32网络编程TCP/UDP

本文介绍了ESP32网络编程中的TCP/UDP通讯要点,重点讲解了TCP客户端的API应用。主要内容包括: ESP32基于lwIP协议栈实现TCP/IP功能,提供标准BSD Sockets API 详细解析了客户端关键API: socket()创建通信端点 connect()建立服务器连接 send()/recv()数据收发 close()关闭连接 提供了TCP连接服务器的代码示例 介绍了通过独立线程实现持续数据收发的方法 文章针对物联网应用场景,侧重于TCP客户端编程,包含错误处理和资源释放等最佳实践。

2025-11-05 22:10:53 1210

原创 Onenet_ESP32移植手册

本文介绍了如何将Onenet组件移植到ESP32工程中,主要包括三个部分:1) 移植Onenet组件库和WiFi连接组件;2) 配置Onenet数据连接和上传功能,包括设备上线、创建模型实例、数据赋值和上传;3) 处理云端命令接收,通过回调函数解析cJSON格式数据。手册提供了具体代码示例,并建议多开线程处理不同模型数据的上传频率。最后给出了GitHub工程链接供参考。

2025-10-26 17:58:29 729

原创 ROS1环境简介及常用指令

ROS1环境与Ubuntu基础使用摘要 本文介绍了ROS1在Ubuntu 20.04 LTS系统下的基础环境配置和使用方法。Ubuntu采用单一根目录结构(/),与Windows的多驱动器结构不同。重点介绍了Linux核心概念:shell(命令解释器)、bash(默认shell实现)和terminal(终端模拟器)的关系与作用。详细解析了Ubuntu文件系统结构,包括关键目录如/bin(基础命令)、/etc(配置文件)、/home(用户目录)、/usr(软件安装)等的功能。还对比了Linux与Windows

2025-10-21 19:40:20 976

原创 ESP32的FreeRTOS框架重点

ESP32 FreeRTOS核心要点 ESP32采用改进的FreeRTOS支持双核调度,系统服务默认运行在Core 0,用户任务在Core 1。线程创建使用xTaskCreate()或xTaskCreatePinnedToCore(),创建即启动无需额外API。线程同步提供信号量(计数器/通知)、互斥量(资源保护)和事件组(多事件处理)三种机制。互斥量具有所有权和优先级继承特性,能有效解决优先级反转问题。信号量API统一,适用于二值信号量和计数信号量。事件组通过位标志实现多事件同步。开发时需注意主线程须包含

2025-10-18 21:34:06 1156

原创 ESP32基础配置

ESP32开发笔记:基于ESP-IDF 5.1.2的环境配置与工程构建 本文介绍了ESP32开发环境的配置方法,主要包括: 使用VS Code和ESP-IDF扩展搭建开发环境 配置工作区文件(.code-workspace)指定工具链路径 优化烧录参数和系统配置(240MHz主频、1ms系统节拍) 采用CMake构建系统,详解项目级和组件级CMakeLists.txt编写规范 介绍乐鑫在线组件管理器的使用方法,以按钮库为例 通过合理的工程架构设计,实现组件化开发模式,提高代码复用性和维护性。

2025-10-17 16:10:58 1017

原创 蓝牙HCI层(1)

本文介绍了蓝牙协议栈中的主机控制器接口(HCI)层,重点分析了HCI流控机制。HCI定义了主机与控制器之间的通信标准,确保不同厂商设备兼容。文章详细解析了HCI文档结构,包含7个核心章节。在流控方面,区分了主机到控制器和控制器到主机两种方向:前者通过数据包或数据块方式管理缓冲区,后者在主机资源紧张时启用。文章还具体说明了相关控制命令的参数设置和交互流程,为理解蓝牙协议栈的数据流管理提供了技术参考。

2025-10-12 21:32:03 868

原创 蓝牙协议介绍

本文概述了蓝牙技术栈的核心内容,重点介绍了蓝牙4.0版本后同时支持经典蓝牙(BR/EDR)和低功耗蓝牙(BLE)的双模特性。文章详细对比了三种主流蓝牙硬件方案(单芯片SoC、SoC+MCU、Host+Controller分离)的优缺点及适用场景,并深入解析了HCI架构下的蓝牙分层结构,包括控制器层的RF、HCI、LMP、BB等模块功能,以及传输层的UART、USB、SDIO等物理通信方式。为嵌入式工程师系统学习蓝牙协议栈提供了清晰的技术框架。

2025-10-09 17:31:20 1069

原创 RTT操作系统(4)

本笔记为作者再学习RTT操作系统的一些心得体会,如有不对的地方,请包含与谅解!​ ————by wsoz由于I/O框架的重要性我们对其单开了一章,这一章我们继续RTT的学习首先与通用的 不同,PIN 设备框架为了使用的便捷性,封装了一套更直观的 API,如 。PIN设备就是我们常用的GPIO,对于GPIO的特性由下放展示=由于官方对PIN设备进行了更加直观的封装,我们需要了解的操作接口有下面的几个:原型:RT-Thread 提供的

2025-09-26 23:24:28 793

原创 RTT操作系统(3)

RTT操作系统I/O设备框架学习摘要 RT-Thread的I/O设备框架分为三层架构: I/O设备管理层:提供统一API接口,屏蔽底层差异 设备驱动框架层:抽象同类设备共性,定义标准接口 设备驱动层:直接操作硬件,实现具体功能 框架特点: 基于内核对象模型构建 支持多种设备类型(字符/块/网络等) 实现高内聚低耦合 保留裸机代码兼容性 使用方式:通过标准API调用设备,底层驱动适配具体硬件。相比裸机开发,增加了操作系统框架层,使应用代码与硬件解耦。

2025-09-17 23:53:43 715

原创 RTT操作系统(2)

本笔记为作者再学习RTT操作系统的一些心得体会,如有不对的地方,请包含与谅解!紧接上文的时钟同步,下面我们继续RTT的学习。

2025-09-14 22:29:31 876

原创 EPS01通过AT指令上云(ONENET)

​ 主界面​ 通用设置界面​ 用户信息设置界面​ 安全证书设置​ 网络代理设置​ 遗嘱设置。

2025-09-11 16:19:52 882

原创 RTT操作系统(1)

RTT操作系统学习笔记摘要 RT-Thread(RTT)是一款嵌入式实时多线程操作系统,支持物联网功能。其内核管理线程、通信、时钟和内存等资源,采用基于优先级的全抢占式调度算法。RTT提供丰富的线程同步机制(信号量、互斥量、事件集)和通信方式(邮箱、消息队列)。系统启动流程包括硬件初始化、内核对象创建和线程调度启动。标准工程架构包含应用程序、驱动层、硬件库和内核源码等模块。定时器分为硬件定时器(中断上下文执行)和软件定时器(线程上下文执行)。开发时主要在applications目录编写代码,通过rtconf

2025-09-09 21:28:50 1210

原创 STM32笔记(11)——BKP和RTC

RTC和时钟配置系统处于后备区域,系统复位时数据不清零,VDD(2.0~3.6V)断电后可借助VBAT(1.8~3.6V)供电继续走时。RTC_EXITConfing 退出配置模式(已经写入在所需的函数)RTC_EnterConfingmode 进入配置模式(已经写入在所需的函数)RCC→LSE→RTCCLK选择→等待同步及操作完成→预分频器→CNT值设置。简而言之,RTC实时时钟可以看成由一个32位的计数器构成 (秒计数器)

2024-09-04 16:42:18 1112

原创 STM32笔记(10)——USART

通用同步/异步收发器 USART是STM32内部集成的硬件外设,可根据数据寄存器的一个字节数据自动生成数据帧时序,从TX引脚发送出去,也可自动接收RX引脚的数据帧时序,拼接为一个字节数据,存放在数据寄存器里 自带波特率发生器,最高达4.5Mbits/s。一帧分为10位或11位,10位下默认无检验位,11位下有检验位,停止位决定连发间隔(0.5/1/1.5/2)位,一般选择1位。可配置数据位长度(8/9)、停止位长度(0.5/1/1.5/2) 可选校验位(无校验/奇校验/偶校验)

2024-09-01 13:23:21 1116

原创 STM32笔记(9)——DMA

DMA可以提供外设和存储器或者存储器和存储器之间的高速数据传输,无须CPU干预,节省了CPU的资源。12个独立可配置的通道: DMA1(7个通道), DMA2(5个通道)DMA(Direct Memory Access)直接存储器存取。STM32F103C8T6 DMA资源:DMA1(7个通道)每个通道都支持软件触发和特定的硬件触发。当m2m为 1时软件触发,0为硬件触发。

2024-08-30 17:36:43 1205

原创 STM32笔记(8)——ADC

RCC(开启时钟)→GPIO(初始化,AIN模式)→规定通道(若单通道可以直接放在初始化中,多路时可放在获取AD值函数中)→AD转换器(初始化)→开关控制(CMD)ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁 12位逐次逼近型ADC,1us转换时间。1.左对齐(后四位为0,前面为数据,若需转成十进制要除2的4次方)18个输入通道,可测量16个外部和2个内部信号源。当需要使用扫描模式时,要避免数据的覆盖,需利用。2.右对齐(前四位为0,可以直接转成十进制)

2024-08-29 16:03:17 1112

原创 STM32笔记(7)——定时器编码器接口

每个高级定时器和通用定时器都拥有1个编码器接口 两个输入引脚借用了输入捕获的通道1和通道2。脉冲,自动控制CNT自增或自减,从而指示编码器的位置、旋转方向和旋转速度。编码器接口可接收增量(正交)编码器的信号,根据编码器旋转产生的。

2024-08-27 21:12:29 654

原创 STM32笔记(6)——定时器输入捕获

PWMI模式简单来说就是通道1在上升沿时将CNT值传入CCR1,通道2在下降沿时将CNT传入CCR2 ,利用CCR2/CCR1就可以测出占空比。对于定时器中而言,主模式指通过定时器来控制其他外设的进程,从模式则指其他外设对于定时器的影响。输入捕获模式下,当通道输入引脚出现指定电平跳变时,当前CNT的值将被锁存到CCR中,主模式通常指的是系统或程序的主控制流程。从模式通常指的是依赖于主模式的子任务或线程。,同时测量频率和占空比 可配合主从触发模式,实现硬件全自动测量。测周法:不稳定,更新快 (适用于低频率)

2024-08-27 14:19:46 703

原创 STM32笔记(5)——定时器输出比较

RCC(开启时钟)→时钟源选择→时基单元(初始化)→配置输出比较单元(CCR值,模式)→GPIO(复用推挽输出)→运行控制(cmd)输出比较可以通过比较CNT与CCR寄存器值的关系,来对输出电平进行置1、置0或翻转的操作,用于输出一定频率和占空比的。每个高级定时器和通用定时器都拥有4个输出比较通道 高级定时器的前3个通道额外拥有死区生成和互补输出的功能。主要运用PWM模式 1,有效电平可理解为高电平,无效电平可理解为低电平。复用推挽输出,与GPIO外设相结合输出pwm,要注意。

2024-08-25 13:01:37 1281

原创 STM32笔记(4)——定时器中断

TIM(Timer)定时器: 定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中断 ,16位计数器、预分频器、自动重装寄存器的时基单元,在72MHz计数时钟下可以实现最大59.65s的定时。定时器功能:定时中断功能,内外时钟源选择、输入捕获、输出比较、编码器接口、主从触发模式等多种功能。UI为更新中断,U为更新事件,更新中断通向NVIC,更新事件通向内核外其他外设。时钟选择为TIX时钟捕获通道。时钟选择为ETR外部时钟模式1。时钟选择为ETR外部时钟模式2。时钟选择为其他定时器。

2024-08-23 21:00:06 2190

原创 STM32笔记(3)——外部中断

RCC(开启外设时钟)→GPIO(初始化)→AFIO(中断引脚选择)→EXTI(初始化)→NVIC(优先级)源申请中断,CPU再次暂停当前中断程序,转而去处理新的中断程序,处理完成后依次进行返回。当前正在运行的程序,转而去处理中断程序,处理完成后又返回原来被暂停的位置继续运行。支持的GPIO口:所有GPIO口,但相同的Pin不能同时触发中断。:在主程序运行过程中,出现了特定的中断触发条件(中断源),使得。中断响应是中断CPU执行中断函数,事件响应是触发外设间的中断。进行中断统一的控制,每个中断通道都拥有。

2024-08-21 15:01:01 1041

空空如也

空空如也

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

TA关注的人

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