嵌入式开发星球
以培养优质嵌入式工程师为目的,持续分享优质嵌入式内容;答疑解惑,获取资源,可添加博主微信:18270720391;关注公众号:“嵌入式开发爱好者”,输入:“1024” 领取资料。
展开
-
嵌入式单片机中SPI串行通信详细操作与实现
串行外设接口(Serial Peripheral Interface)的简称也叫做SPI,是一种高速的、全双工同步通信的一种接口,串行外设接口一般是需要4根线来进行通信(NSS、MISO、MOSI、SCK),但是如果打算实现单向通信(最少3根线),就可以利用这种机制实现一对多或者一对一的通信。SPI总线采用的环形结构,利用的是主从模式(主机---->从机)进行数据的传输,由于是同步通信,所以在主机发送数据的同时也会收到从机发送的数据。主机的工作模式必须根据从设备的数据手册的说明进行设置。原创 2025-04-01 15:20:00 · 16 阅读 · 0 评论 -
嵌入式单片机ADC数模转换的基本方法
一般在电路中,信号分为两种,一种是模拟信号,一种是数字信号,绝大多数传感器采集的都是模拟信号,如温度、湿度、烟雾浓度、亮度.......,但是对于计算机需要处理的数字信号,那就需要利用电路把模拟信号转换为数字信号,这个转换的过程需要利用模数转换器,也被称为ADC。流程可以参考stm32f4xx_adc.c的注释以及ST公司提供的帮助手册进行分析,然后以开发板的电位器(滑动变阻器)为例进行说明。想要实现模数转换或者数模转换,必须要掌握流程,基本分三步:采样 量化 编码。原创 2025-04-01 15:14:03 · 207 阅读 · 0 评论 -
嵌入式单片机C语言中指针详解
第二,它是一个指针,该指针的类型是TYPE*,该指针指向的类型是TYPE,也就是数组单元的类型,该指针指向的内存区就是数组第0号单元,该指针自己占有单独的内存区,注意它和数组第0号单元占据的内存区是不同的。&a的运算结果是一个指针,指针的类型是a的类型加个*,指针所指向的类型是a的类型,指针所指向的地址嘛,那就是a的地址。要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。该指针所指向的类型是p的类型,这里是int*。原创 2025-03-26 14:58:45 · 586 阅读 · 0 评论 -
嵌入式C++基础与三大特性实现
c++是一种中级语言,由 Bjarne Stroustrup 于 1979 年在贝尔实验室开始设计开发的。c++ 进一步扩充和完善了 C 语言,是一种面向对象的程序设计语言。可运行于多种平台上,如 Windows、MAC 操作系统以及 UNIX 的各种版本。C++的三大特性封装所谓封装就是将某些东西包装盒隐藏起来,让外界无法直接使用,只能通过某些特定的方式才能访问。封装的目的是增强安全性和简化编程,使用者不必了解具体的实现细节,而只是通过外部接口以及特定的访问权限来使用类的成员继承。原创 2025-03-26 12:07:02 · 88 阅读 · 0 评论 -
嵌入式硬件开发中如何将对应的EDA文件导入PADS方法
在工作中,需要使用不同的原理图绘制软件,所以学会在不同的软件之间进行文件的导入十分有必要。这里将演示将已经在嘉立创绘制好的原理图导入到PADS。7.点击导入后找到刚刚在嘉立创EDA导出的文件位置,找到Schematic1后点击打开。2.找到菜单栏上的文件,点击导出之后,选择PADS。9.可以选中原理图部分然后将其复制到Sheet1中。4.选择一个地方保存,以下示例是保存在F盘。1.打开嘉立创EDA并选择想要导入的原理图。10.有些字体重叠需要将其分开美观处理。3.点击导出PADS。6.点击菜单栏上的文件。原创 2025-03-25 16:38:45 · 212 阅读 · 0 评论 -
嵌入式C语言中指针类型详解
被调用函数swap中交换了形参指针变量pi,pj的值(地址),但是因为同样是参数的单向传递,形参、实参占用的是不同的内存空间,所以在尽管在swap中交换了形参指针变量pi,pj值,实参指针变量pa,pb不会改变,还是分别指向a,b。*q表示q所指向对象的内容,由于在定义q时为其初始化,将p中n的地址给q,因此p中存放n的地址,*q表示q所指向对象n的内容.因此*p=*q 相当于 n=n;选项A,*P表示P所指向对象的内容,此时P指向a[0], *P即a[0]的值1. *P+9=1+9=10。原创 2025-03-24 10:16:05 · 103 阅读 · 0 评论 -
嵌入式C语言中函数基本操作与实现
可以将main函数放在整个程序的最前面,也可以放在整个程序的最后,或者放在其它函数之间。例中,主函数中调用max函数的语句是:nmax=max(n1,n2,n3);注解:选项A、D不是C语言的函数定义格式,C语言在函数定义的函数头部,形参的定义是每一个形参都要有自己的关键字。例中,函数头int max(int x,int y,int z)中x,y,z就是形参,它们的类型都是整型。注意:函数不能单独运行,函数可以被主函数或其它函数调用,也可以调用其它函数,但是不能调用主函数。原创 2025-03-24 10:06:10 · 97 阅读 · 0 评论 -
嵌入式项目:利用心知天气获取天气数据实验方案
1、利用心知天气服务器获取指定位置天气数据2、将天气数据解析并可视化显示到OLED屏幕。原创 2025-03-23 22:33:10 · 74 阅读 · 0 评论 -
嵌入式C语言中数据溢出的常见的问题与危险
数据溢出(Data Overflow)是指在计算机程序中,尝试将一个数值存储到变量中时,该数值超出了变量所能表示的范围。简单来说,就是当一个操作的结果超过了变量的数据类型能够存储的最大值或最小值时,发生的溢出现象。数据溢出是嵌入式开发中一个不可忽视的问题,它可能导致程序崩溃、计算错误甚至安全漏洞。在进行算术运算之前,检查数值是否超出了目标变量的范围。使用更大的数据类型(如int32_t代替int8_t)来降低溢出的风险。配置编译器选项(如GCC的)以增加溢出检测。原创 2025-03-22 10:56:02 · 31 阅读 · 0 评论 -
嵌入式电路设计软件个人安装步骤分享
提取码:kHSP电脑安装Multisim14.0并且汉化。原创 2025-03-22 10:42:08 · 138 阅读 · 0 评论 -
嵌入式C语言中指针类型常见的使用方法
简介:指针是一个类型指针定义:指针是一种特殊的变量,用于存储另一个变量的内存地址。void指针: 所指类型未指定,能存储任何类型变量的地址。 例如:void *p函数指针:void (*p)(void)在C语言编程中,指针是一种强大且灵活的工具,但其复杂性也常常让人感到困惑。本文将从基础概念开始,层层递进,深入探讨指针的类型、分类、运算符以及复杂的指针声明方法。通过本文,你将能够更好地理解和使用C语言中的指针,掌握嵌入式开发中的一项关键技能。一、指针的基本概念1. 什么是指针?在C语言中,指针原创 2025-03-21 21:43:00 · 29 阅读 · 0 评论 -
嵌入式C语言指针:从基础到深入的全面解析
在C语言中,指针是一种数据类型,它用于存储内存地址。可以说,指针是“指向”某个变量的标记。通过指针,我们可以直接操作内存地址,从而实现对数据的高效操作。*p++;和&p++;*p++;表示对p指向的变量进行自增操作。&p++;表示对p的地址进行自增操作。int*a[10];和int*a[10];:一个包含10个int*的数组。:一个指向10个int的数组的指针。和:一个数组指针。:一个函数指针,函数接受一个int参数,返回int。原创 2025-03-20 15:39:07 · 127 阅读 · 0 评论 -
嵌入式系统中补码的重要性:揭秘数据存储的精髓
首先,我们需要明确补码(Two’s Complement)的定义。补码是一种用于表示有符号整数的编码方式,广泛应用于计算机系统中。正数的补码:与其原码相同,即最高位为0,后面跟着绝对值的二进制表示。负数的补码:通过将绝对值的原码进行反码(取反)后再加1得到。例如,3的补码是00000011,而-3的补码是11111101。补码的引入解决了多个关键问题,包括统一正负数的运算方式、解决零的双重编码问题等。接下来,我们将详细探讨这些优势。原创 2025-03-20 12:03:01 · 33 阅读 · 0 评论 -
嵌入式单片机硬件设计PADS软件安装详解(win11亲测有效)
9.勾选【PADS Layout】、【PADS Router】、【Design Entry】、【Libraries】,并且取消勾选【Server Services】15.右键【以管理员身份】运行【Crack.exe】(如运行Crack.exe无法正常运行,需找到【MentorKG.exe】并右键其以【管理员身份运行】)10.选择【Target Path】,点击【Browse】调整安装路径,避免安装在C盘且安装路径不能含有中文,选择完后点击【Done】1.首先关闭电脑自带的杀毒软件与防火墙(很重要!原创 2025-03-19 14:54:24 · 368 阅读 · 0 评论 -
嵌入式编程优化技巧:do-while(0)、case范围扩展与内建函数
结构特别适合用于定义函数式宏或复合语句。通过这种方式,可以在宏中包含多个语句,同时避免因为宏展开导致的逻辑问题。在嵌入式编程中,优化代码的性能和可靠性是开发者的核心任务。通过合理使用结构、case范围扩展和内建函数,开发者可以显著提升代码的效率和可维护性。帮助开发者避免宏的常见问题,case范围扩展优化了条件语句的执行效率,而内建函数则为关键任务提供了高效的实现方式。无论是处理复杂的宏定义,还是优化内存操作和数学计算,这些技术都能在实际开发中发挥重要作用。原创 2025-03-18 21:10:59 · 152 阅读 · 0 评论 -
嵌入式GCC中属性声明以及优化代码的强大工具
GCC的属性声明为开发者提供了强大的工具,用于优化代码的性能、内存布局和符号管理。通过合理使用weakaliasconstaligned和packed属性,开发者可以编写出更高效、更可靠的代码。无论是处理符号冲突、优化纯函数,还是精细控制内存布局,这些属性都能在实际开发中发挥重要作用。原创 2025-03-18 20:59:06 · 21 阅读 · 0 评论 -
GCC属性声明在嵌入式开发中的应用
formatsectionGCC的属性声明为嵌入式开发提供了强大的工具,帮助开发者优化代码、提高代码质量以及满足特定的开发需求。format属性增强了变参函数的安全性,aligned和packed属性控制了内存对齐,而section属性则允许开发者指定代码或数据的段。在实际开发中,合理使用这些属性可以显著提高代码的效率和可靠性。如果你有更多关于GCC属性声明的应用场景或问题,欢迎在评论区留言讨论!原创 2025-03-17 20:51:29 · 230 阅读 · 0 评论 -
深入理解嵌入式开发中的三个重要工具:零长度数组、container_of 和 typeof
零长度数组(Zero-Length Array)是一个数组,其长度为零。int len;char a[0];尽管其长度为零,但它为结构体提供了一个灵活的扩展点。是一个内核宏,用于从结构体成员的地址获取结构体的首地址。它的功能类似于从指针获取结构体的起始位置。typeof是一个关键字,用于获取变量或表达式的类型。它在内核开发中主要用于宏定义中,帮助开发者编写更灵活的代码。typeof常用于宏定义中,帮助开发者编写通用的代码。a = b;b = _t;})这个宏可以交换任何类型的变量。typeof。原创 2025-03-17 20:32:12 · 149 阅读 · 0 评论 -
嵌入式单片机中串口的控制与实现
串行外设接口(Serial Peripheral Interface)的简称也叫做SPI,是一种高速的、全双工同步通信的一种接口,串行外设接口一般是需要4根线来进行通信(NSS、MISO、MOSI、SCK),但是如果打算实现单向通信(最少3根线),就可以利用这种机制实现一对多或者一对一的通信。SPI总线采用的环形结构,利用的是主从模式(主机---->从机)进行数据的传输,由于是同步通信,所以在主机发送数据的同时也会收到从机发送的数据。通过这两位可以得到四种不同的组合,就被作为SPI总线的工作模式(原创 2025-03-15 21:25:53 · 155 阅读 · 0 评论 -
嵌入式C语言中堆栈管理与数据存储的精髓
堆栈管理和数据存储是C语言嵌入式开发中的核心内容。通过深入理解栈的初始化、函数调用、参数传递以及数据存储机制,开发者可以编写出高效、安全的嵌入式程序。在实际开发中,合理使用栈和堆内存,避免内存错误和溢出,是提升程序稳定性和性能的关键。原创 2025-03-15 21:22:19 · 88 阅读 · 0 评论 -
嵌入式开发中的C语言标准演进与关键特性深度解析
标准选择建议资源受限场景:优先使用C99(变长数组、单行注释)。复杂系统:C11的泛型和多线程特性更适配RTOS开发。原创 2025-03-08 11:43:08 · 193 阅读 · 0 评论 -
嵌入式单片机STM32中IIC通信详解
可以看到从器件的地址是7bit,可以通过硬件原理图以及从器件的数据手册进行查找,比如AT24C02芯片的设备地址是1010000,但是由于IIC协议在数据传输的时候是以8bit为单位进行传输,而IIC总线只有一根数据线,所以只能采用半双工的方式通信,就要求主机设置数据的传输方向,数据的传输方向由1bit进行控制,这1bit和从器件的设备地址一起发出。每个挂载在IIC总线上的外围器件都有独立的器件地址,主机发送开始信号后,只需要发送想要通信的设备的地址,如果设备收到地址并且匹配正确,则开始进行单独通信。原创 2025-03-08 11:30:34 · 448 阅读 · 0 评论 -
嵌入式中Type-C 与快充相关知识详解
本章节将对Type-C 的接口进行大致了解,对封装类型进行讲述,另外关于快充协议分为公开和私有两个部分,公开协议主要以PD协议和QC协议,私有协议包括VOOC华为快充三星快充规格大致了解。原创 2025-03-06 12:55:36 · 333 阅读 · 0 评论 -
嵌入式C编码规范详解
结构名或枚举名必须小写,单词之间有下划线_字符结构或枚举可以包含typedef关键字所有结构成员都必须小写所有枚举成员必须是大写的结构/枚举必须遵循doxygen文档语法在声明结构体时,它可以使用以下三种不同的选项之一:1、当结构体仅用名称声明时,它的名称后不能包含_t后缀。char* a;char b;2、当只使用typedef声明结构时,它的名称后面必须包含_t后缀。char* a;char b;原创 2025-03-06 12:51:02 · 171 阅读 · 0 评论 -
嵌入式单片机STM32外设看门狗详细实现
注意:WWDG外设没有独立的时钟源,而是挂载在APB1总线下,APB1总线外设时钟为42MHZ。了解WWDG外设的使用流程,可以参考stm32f4xx_wwdg.c的开头注释,具体流程如下图所示注意:WWDG看门狗是具有提前中断唤醒功能的,可以利用中断服务函数来在芯片复位之前进行数据的保存,或者在某些情况下利用中断服务函数进行喂狗操作,防止芯片复位。原创 2025-03-04 20:49:58 · 50 阅读 · 0 评论 -
嵌入式系统中总线、指令集与ARM架构解析
总线是硬件通信的桥梁,编址方式决定数据如何传递。指令集是CPU的底层语言,微架构决定性能天花板。ARM的灵活设计使其成为嵌入式领域的王者,从手环到无人机都在用。给初学者的建议动手写汇编代码,观察寄存器变化。用调试工具(如Keil、GDB)单步执行,理解指令流程。结合芯片手册,实战外设驱动开发(如点亮LED)。掌握这些核心概念,你就能从"调库侠"进阶为真正的嵌入式高手!原创 2025-03-01 17:11:50 · 190 阅读 · 0 评论 -
嵌入式开发中的计算机体系结构与主流架构深度解析
嵌入式开发的核心在于对硬件架构的深刻理解与灵活应用。无论是X86的高性能计算,ARM的低功耗设计,还是C51的简单易用,开发者需根据场景选择合适平台,并通过抽象与优化实现高效开发。未来的嵌入式系统将更趋复杂,但万变不离其宗——掌握体系结构,方能以不变应万变。拓展思考在RISC-V等开源架构崛起的背景下,传统架构如何保持竞争力?如何平衡嵌入式系统的实时性与功耗?原创 2025-02-28 21:21:49 · 313 阅读 · 0 评论 -
XMT-AA/AD 数字温度传感器深度解析与嵌入式应用指南
XMT-AA/AD 凭借其高精度和单总线优势,成为嵌入式温控系统的理想选择。2. ROM 指令(Search/Match/Skip ROM)// 拉低640μs。原创 2025-02-22 19:41:21 · 76 阅读 · 0 评论 -
嵌入式开发中常见的数据结构实现
如果你是一名程序员,数据结构就是你的核心。它们是高效算法和系统设计的基本构建模块。无论你是在为编码面试做准备,优化你的代码,还是在处理复杂的应用程序,理解如何使用和实现数据结构是至关重要的。在这篇博客文章中,我们将剖析每一位开发人员都应该熟悉的 11 种数据结构。这些结构不仅在面试中很常见,而且对于在实际应用中编写高效且可扩展的代码也至关重要。数组是最基本且常用的数据结构之一。它在连续的内存块中存储元素,并允许通过索引进行快速访问。数组中的每个元素位于一个索引编号处,该索引提供了直接访问以检索或更新一个元素原创 2025-01-13 20:26:44 · 74 阅读 · 0 评论 -
嵌入式系统中项目开发的基本要素
嵌入式开发各个环节紧密相扣,从最初对系统需求的精准洞察,到硬件平台的审慎抉择,再到代码编写的精雕细琢、测试调试的严苛把关,以及上线后的持续优化维护,每一步都承载着产品的品质与未来。作为嵌入式软件开发从业者,遵循可靠的方法论能助力我们打造出稳定可靠、性能卓越的嵌入式软件产品。原创 2025-01-11 19:52:09 · 108 阅读 · 0 评论 -
嵌入式单片机内存泄漏处理与实现
最近部门不同产品接连出现内存泄漏导致的网上问题,具体表现为单板在现网运行数月以后,因为内存耗尽而导致单板复位现象。一方面,内存泄漏问题属于低级错误,此类问题遗漏到现网,影响很坏;另一方面,由于内存泄漏问题很可能导致单板运行固定时间以后就复位,只能通过批量升级才能解决,实际影响也很恶劣。同时,接连出现此类问题,尤其是其中一例问题还是我们老员工修改引入,说明我们不少员工对内存泄漏问题认识还是不够深刻的。本文通过介绍内存泄漏问题原理及检视方法,希望后续能够从编码检视环节就杜绝此类问题发生。原创 2025-01-08 21:14:34 · 384 阅读 · 0 评论 -
嵌入式单片机中IIC通信控制与实现
可以看到从器件的地址是7bit,可以通过硬件原理图以及从器件的数据手册进行查找,比如AT24C02芯片的设备地址是1010000,但是由于IIC协议在数据传输的时候是以8bit为单位进行传输,而IIC总线只有一根数据线,所以只能采用半双工的方式通信,就要求主机设置数据的传输方向,数据的传输方向由1bit进行控制,这1bit和从器件的设备地址一起发出。每个挂载在IIC总线上的外围器件都有独立的器件地址,主机发送开始信号后,只需要发送想要通信的设备的地址,如果设备收到地址并且匹配正确,则开始进行单独通信。原创 2024-12-28 15:00:34 · 280 阅读 · 0 评论 -
嵌入式单片机中SPI外设控制与实现
串行外设接口(Serial Peripheral Interface)的简称也叫做SPI,是一种高速的、全双工同步通信的一种接口,串行外设接口一般是需要4根线来进行通信(NSS、MISO、MOSI、SCK),但是如果打算实现单向通信(最少3根线),就可以利用这种机制实现一对多或者一对一的通信。SCK空闲状态下的电平可以由SPI_CR1寄存器的CPOL位来进行设置。SPI总线采用的环形结构,利用的是主从模式(主机---->从机)进行数据的传输,由于是同步通信,所以在主机发送数据的同时也会收到从机发送的数据。原创 2024-12-28 14:26:46 · 241 阅读 · 0 评论 -
嵌入式单片机模数转换控制与实现详解
一般在电路中,信号分为两种,一种是模拟信号,一种是数字信号,绝大多数传感器采集的都是模拟信号,如温度、湿度、烟雾浓度、亮度.......,但是对于计算机需要处理的数字信号,那就需要利用电路把模拟信号转换为数字信号,这个转换的过程需要利用模数转换器,也被称为ADC。想要实现模数转换或者数模转换,必须要掌握流程,基本分三步:采样 量化 编码预习:STM32中文参考手册第11章 ADC 作业:参考笔试题,掌握C语言指针。原创 2024-12-27 21:25:23 · 394 阅读 · 0 评论 -
嵌入式单片机中Flash存储器控制与实现
存储器指的是若干个存储单元的集合,每个存储单元都可以存储若干个二进制数,为了方便的操作存储单元,就为每个存储单元都分配了地址,就可以通过寻址来访问存储单元。由于计算机的处理的数据量较大,并且运算速度都很快,就要求存储器的容量更大,并且存取数据的速度更快。原创 2024-12-27 21:10:04 · 776 阅读 · 0 评论 -
嵌入式单片机窗口看门狗控制与实现
另外,RTC实时时钟可以由系统主电源供电,但是也可以由备份电源供电(系统主电源不工作时),所以想要使用,就必须打开电源控制器的外设时钟,PWR外设挂载在APB1总线下。对于RTC实时时钟而言,是具有闹钟中断以及唤醒中断功能,可以利用RTC的唤醒中断功能来周期性的产生中断并获取时间和日期,优点是获取的时间准确,精度高。注意:WWDG看门狗是具有提前中断唤醒功能的,可以利用中断服务函数来在芯片复位之前进行数据的保存,或者在某些情况下利用中断服务函数进行喂狗操作,防止芯片复位。原创 2024-12-26 22:06:20 · 576 阅读 · 0 评论 -
嵌入式单片机温湿度模块控制与实现
由于单片机在运行的过程经常会受到外部电磁场的干扰,就可能会出现程序“跑飞”,比如出现数据的缺失、导致寄存器中的数据发生变化、程序指针PC指向非法地址........,为了提高程序的可靠性,就提供了看门狗外设,在程序出现由软件或者硬件导致的未知问题,利用看门狗外设对芯片进行复位,相当于重新运行程序。:如果采集的温湿度数据超过了用户设置的阈值,比如用户设置的温度上限为24℃,如果实际的温度超过该值,则蜂鸣器报警,并自动打开风扇,注意:用户可以通过手机设置温湿度的阈值。原创 2024-12-26 22:01:08 · 362 阅读 · 0 评论 -
嵌入式单片机中蓝牙模块的详解
编写代码,可以利用超声波检测障碍物的距离,根据不同的距离进行提示,如果距离小于10cm则蜂鸣器鸣叫的声音频率较高,如果距离大于10cm并小于20cm,蜂鸣器声音较小,如果距离大于20cm,蜂鸣器不响。AT指令模式指的是蓝牙未连接的工作模式,在该模式可以配置蓝牙的参数(蓝牙名字、蓝牙密码、蓝牙地址......),需要利用固定的AT指令,注意不同公司设计的蓝牙模块的AT指令大同小异。数据透传模式指的是在蓝牙已经被手机连接,该模式下蓝牙就相当于一根透明的串口线,蓝牙只负责把数据发送到目的地,不对数据进行处理。原创 2024-12-25 20:58:35 · 315 阅读 · 0 评论 -
嵌入式单片机中串口通信实现详解
对于STM32F407芯片而言,一共提供了6个串口,包括4个USART和2个UART,USART指的是通用同步异步收发器,而UART指的是通用异步收发器,相比于USART而言,UART裁剪掉同步功能,一般平时在使用串口的时候都是使用异步通信。串口是把数据按位顺序传输,但是计算机在通信的时候采用的并行通信的方式,在硬件设备与计算机进行通信的时候涉及到串转并、并转串,实现方式有两种:软件实现+硬件实现,如果采用软件实现会增加CPU的负担,一般都是采用硬件实现(增加串口)。通过USART初始化结构体。原创 2024-12-25 20:43:06 · 165 阅读 · 0 评论 -
嵌入式单片机中PWM脉宽调制详解
PWM技术的原理其实很简单,只不过是利用STM32定时器中的某个通道的输出比较功能(PWM模式)来输出周期性的脉冲信号,只不过要调节脉冲的宽度(调节占空比)。PWM技术的关键参数有两个,一个是频率,一个是占空比,频率指的是利用STM32的定时器通道输出脉冲的次数,占空比指的是一个周期内高电平所占的比例。可以看到PF9引脚和TIM14_CH1是相关联的,所以就需要把PF9引脚的功能设置为复用功能,复用为定时器功能。PWM指的是脉冲宽度调制,是一种利用微处理器的数字输出能力来控制模拟电路的技术。原创 2024-12-24 22:32:13 · 83 阅读 · 0 评论