- 博客(1269)
- 收藏
- 关注
转载 Flash寿命限制:频繁写入(如每秒保存)会缩短Flash寿命,如何判断在真正断电
频繁写入(如每秒保存)确实会显著缩短 Flash 存储器的寿命,因为 Flash 的擦写次数是有限的。而“如何判断在真正断电”这一问题,通常是指。
2026-04-14 17:00:53
18
转载 c和c++中为什么要防止头文件被重复包含!重复定义错误;宏名命名冲突:编译效率下降
在编程中,头文件就像一本工具书,它包含了函数、类、宏 、全局变量等的定义和声明,供其他代码文件引用。想象一下,如果你在写一篇文章时,反复引用同一本工具书的内容,会发生什么情况呢?1. 避免重复定义错误如果一个头文件被多次包含,其中的类、函数、宏等就会被多次定义。这就好比你在同一个地方放了两个相同的书架,书架上的书都是一样的,这显然是不合理的。编译器在处理代码时,也会遇到类似的问题。
2026-04-14 13:51:10
6
转载 c语言可否在头文件中定义变量虽有防包含机制但多个源文件包含同一个头文件编译器是每个源文件为单元,当链接器合并的时候会发现相同变量的重复定义报错防包含主要防同一源文件间接包含相同头文件包含A,B。A含B
并且这个头文件被多个源文件包含,即使有#pragma once,每个包含该头文件的源文件在编译时都会有自己的一份globalVar的定义。初始化问题:如果在头文件中定义了一个变量并尝试初始化它,那么每个包含该头文件的源文件都会有自己的该变量的拷贝,并且每个拷贝都会尝试进行初始化。当在同一个编译单元中再次包含这个头文件时,由于MYHEADER_H已经被定义,#ifndef条件不成立,预处理器就会跳过#ifndef和#endif之间的内容,从而避免了头文件内容的重复处理。
2026-04-14 11:15:19
6
原创 KEIL等编辑软件如何把十进制十六进制浮点数等转换为二进制,以及二进制逆转换为相应的进制数据。显示的数据都是字符,需要对应的ASC码驱动,是认知系统概念,电脑只认识有电没电。即使代表有电没电01不认识
计算机在把2进制数转换为16进制数和10进制数的时候,浮点数灯按照定义解析,按照位权计算展开,乘以2也是需要计算进行计算的,这个计算也需要电路实现,有得处理器有乘法电路有的没有专门乘法电路,但是也是由加减移位等操作电路实现的。还有专门的编码电路BCD8421码等电路,ASC编码电路,可以把键盘的数字9等或者字母F等转换为2进制的电路对应。标准的输入输出库函数进行输入和输出操作计算机如何把浮点数按照定义解析出来并显示,可以参考2进制数如何转为10进制和16进制转化并显示。
2026-04-13 14:51:58
372
转载 宏定义为什么要使用do{……}while(0)形式,C语言大括号后面能有分号吗?宏定义后面能有分号吗
在C语言中,宏定义(#define)后面是否加分号取决于宏的类型和使用场景1. 对象宏(Object-like Macro)定义时不加分号:替换文本中的分号应由使用者添加。c1#define PI 3.14 // 正确:使用时需手动加分号// 正确:替换为 3.14 * 5 * 5;4 return 0;5}6定义时加分号的后果:分号会被视为宏的一部分,导致重复分号错误。c// 错误:宏包含分号// 替换为 3.14;;编译报错(多余分号)4 return 0;5}6。
2026-04-10 14:45:20
4
转载 四字节十六进制转化为单精度IEEE 754 浮点数
以下是基于 C 语言实现的解析代码,用于将给定的字节序列(以 IEEE 754 单精度浮点数格式存储 的 32 位四字节)转换为浮点数。如果数据是小端序(如常见的 x86 系统),只需调整字节加载的顺序(例如从 bytes[3] << 24 开始)。要将给定的字节序列解析为 IEEE 754 单精度浮点数(32位,4字节),我们首先需要了解 IEEE 754 单精度浮点数的格式,并按照它的规则进行转换。字节顺序:假设数据是 大端序 (Big-endian),即高位字节在前。uint32_t i;
2026-03-10 14:19:57
53
转载 MAX13487E 半双工 RS-485/RS-422 收发器详解,无需额外控制电路可实现收发方向自动控制
这些电阻的大小与使用其他 RS-485 驱动器时的配置相同,取决于总线的终端方式和总线上连接的节点数。MAX13487E 的自动收发控制在DI引脚输入低电平时驱动总线为低(A < B),在DI引脚输入为高电平时,只驱动总线一小段时间就禁止发送器,并由A、B的上下拉电阻保持总线为高电平(A > B)MAX13487E/MAX13488E 内部电路与 A 引脚上的外部上拉电阻和 B 引脚上的下拉电阻(请参见引脚配置/典型应用电路)一起,自动启用或禁用驱动器和接收器,以保持总线处于正确的状态。
2026-03-02 13:39:36
77
转载 最早的汇编语言编译器用什么语言编写,二进制,随便自举编译(简单自身语言子集编写编译器,编译复杂的自身语言)以及编译器历史
关于最早的汇编语言编译器是用什么语言编写的,根据现有资料,可以得出以下结论:最早的汇编语言编译器(通常称为汇编器)是编写的。在计算机发展的早期,程序员直接使用二进制的机器语言编写程序。为了提高效率,人们发明了汇编语言,它使用助记符(如ADDMOV)来代替难以记忆的二进制指令。然而,计算机只能直接执行机器语言,因此需要一个程序将汇编语言翻译成机器语言——这就是汇编器。由于当时还没有高级语言或现成的汇编器,开发者只能直接用机器语言(即由0和1组成的指令)来编写第一个汇编器。
2026-02-13 11:40:15
66
转载 最早的C语言编译器,先是B语言以及PDP-11汇编语言编写,后来通过自举,也就是简单的C语言子集作为编译器逐步通过其有限子集实现自我构建C语言编译自身C语言
由史蒂芬·强生在1970年代中期于贝尔实验室开发,因其设计上与机器相关的代码比例较低而具有良好的可移植性,并曾作为BSD Unix的默认编译器。关于最早的C语言编译器,其诞生与C语言本身的发展紧密相关,并经历了一个从低级语言到“自举”的关键过程。:使用这个C0编译器,来编译一个用C语言(C0的扩展,称为C1)编写的、功能更强大的新编译器。:世界上第一个C语言编译器并非用C语言本身编写,而是由C语言的前身——。编写的,随后通过“自举”技术,迅速被用C语言自身编写的编译器所取代。
2026-02-13 11:29:23
66
转载 西门子PLC-224XP国产替代详细软硬件方案,采用STM32F103VCT6作为主处理器
双层板,Altium Designer工程文件,原理图Sch文件,PCB文件以及BOM。继电器板包含一些列IO电路,通过光耦去控制继电器,继电器是24V供电。双层板,Altium Designer工程文件,原理图Sch文件,PCB文件以及BOM。很可惜方案中缺失了原理图Sch文件,只包含了PCB文件,BOM文件。但是其电路很简单,通过BOM以及PCB文件逆向出原理图应该很简单,如果不需要理解原理直接用PCB打样即可。用的IDE是MDK,小编给大家编译了一下,没有错误可以直接运行。,可以做调试参考用。
2026-02-12 09:11:37
84
转载 单片机上电复位电路作用,实际是延时复位,在电源和振荡不稳定时候,保持复位,待稳定后,RC延时释放复位电压,转入相反的不复位的电压,延时让程序运行
单片机上电复位电路的核心作用是在系统通电时,确保单片机可靠地进入一个确定的初始状态,并延迟程序的执行,直到电源和时钟信号完全稳定。这避免了因电源波动或振荡器未就绪而导致的程序跑飞、寄存器初始化错误或系统崩溃。具体作用可归纳为以下几点:综上所述,上电复位电路是单片机最小系统中不可或缺的部分,其可靠性直接决定了整个嵌入式系统在启动时的稳定性和抗干扰能力。 80C单片机" title="51单片机" target="_blank">51单片机的上电复位POR(Pmver On Reset)实质上就是上电延时
2026-02-11 11:17:08
87
转载 STM32启动模式深度解析与实战应用
不同于传统的Flash直接启动或依赖ST出厂Bootloader的方式,自定义Bootloader赋予开发者完全控制权——不仅可以实现多应用切换、安全认证、差分更新(Delta Update),还能集成日志记录、远程诊断、双Bank冗余等高级特性。本章深入剖析系统存储器启动的技术背景、ISP编程流程、其固有局限性及应对策略,并通过一个完整的UART远程升级实战案例,展示如何基于该机制构建可靠、安全且可扩展的固件更新系统。在嵌入式系统开发中,微控制器的启动过程是整个系统运行的基石。
2026-02-10 09:54:20
78
转载 【中文文档】AN2606_STM32微控制器系统存储器自举模式
自举程序存储在 STM32 器件的内部自举 ROM 存储器 (系统存储器)中。在芯片生产期间由 ST 编程。其主要任务是通过一种可用的串行外设(USART、CAN、USB、I2C 等)将应用程序下载到内部 Flash 中。每种串行接口都定义了相应的通信协议,其中包含兼容的命令集和序列。本文档适用于表 1 中所列产品。这些产品在整个文档中称为 STM32。
2026-02-09 15:20:56
136
转载 STM32生成的.HEX文件占用存储空间大约是Flash占用字节的2倍左右
所以,虽然HEX文件看起来更大,但它本质上是对相同数据的一种可读性更强的表示方式。例如,一个8位的二进制数0x3F,在HEX文件中需要以两个ASCII字符'3'和'F'来表示,每个字符占用一个字节,因此会占用2个字节的空间。因此,尽管HEX文件的大小看起来比Flash中的实际数据大,但这是因为其采用了文本编码方式并附加了地址和控制信息,而非实际程序代码本身占用的空间。:HEX文件不仅包含程序的实际数据,还包含地址信息、记录类型、校验和等附加信息。hex文件内容很多,其中就包含了bin文件二进制的内容,
2026-02-05 14:50:31
58
原创 电脑端串口助手一个时间戳后面跟几条完整报文,而不是每条报文添加一个时间戳,这是依据什么确定添加接收时间戳
💡 此机制被主流工具如 COMTool、H7-TOOL 采用,通过调整"时间值"或"超时bit"参数即可灵活适配场景。高频调试:缩小阈值至 字符级时间(如 115200 波特率下 10bit≈87μs)。电脑端串口助手采用“超时机制”确定时间戳的添加规则,核心依据是相邻报文接收的时间间隔。当两条报文的接收间隔 超过设定阈值 时,后续报文前插入新时间戳。通用场景:阈值设为 50–100ms(平衡可读性与精度)。目标 实现方式 用户收益。
2026-02-03 16:43:11
224
原创 在单片机串口接收程序中,通常每接收完一条报文就添加一条接收时间,而不是每接收一个字节。这是因为报文是逻辑单元,添加时间戳到完整报文更合理和高效。
if ((get_current_time() - last_receive_time) > TIMEOUT_MS) { // 超时判定报文结束。每字节添加时间戳:会导致时间戳数量过多(例如,一条报文可能包含数十字节),增加存储和处理开销,且时间戳可能失去意义(因为字节间间隔极短)。在单片机串口接收程序中,添加接收时间戳的常见做法是每接收完一条完整报文(即一帧数据)时添加一条时间戳,而非每接收一个字节就添加。
2026-02-03 16:40:03
314
原创 三开门冰箱的接水盒(也称为储水盒或接水盘)正常情况下不会满水
满水风险通常在3-5年后增加:如果长期忽略清洁,或在潮湿环境、频繁开门、储存高水分食品等情况下,水可能无法完全蒸发,导致接水盒在冰箱使用3-5年后出现满水、发臭或漏水问题。三开门冰箱的接水盒(也称为储水盒或接水盘)正常情况下不会满水,因为冰箱压缩机在工作时产生的热量会将冷凝水蒸发掉,从而避免积水问题。正常情况下接水盒不会满水:冰箱设计时,冷藏室产生的冷凝水通过下水管流入接水盒,压缩机运行时的热量会使水分蒸发,因此日常使用中水盒通常不会满溢。为预防问题,定期检查和清洁是关键,尤其在夏季高温潮湿季节。
2026-02-03 16:23:34
246
转载 【无标题】
这意味着对于一个32位的浮点数,其最低有效字节(LSB)存储在最低的内存地址中,而最高有效字节(MSB)存储在最高的内存地址中。在实际应用中,特别是在进行数据传输或与其他设备通信时,需要特别注意字节序问题。例如,如果需要将浮点数通过串口或其他接口发送到另一个系统,而该系统使用大端序,则需要进行字节序转换。例如,定义一个浮点数并使用指针将其转换为字节形式,然后逐个打印这些字节的值。printf("浮点数在内存中的字节顺序(从低地址到高地址):\n");在内存中各个字节的值,从而可以直观地看到其存储顺序。
2026-02-03 11:29:12
29
转载 进行四字节的浮点数转换互换(指针方法,而不是共用体方法)
通讯时 先低(16位)后高(16位),高字节在前,低字节在后。(比如浮点数23.56,在内存中为41 BC 7A E1,通讯时传输顺序:7A E1 41 BC。版权声明:本文为CSDN博主「纸上苍生」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。产品使用的一家可燃气检测传感器,会传递给我一个已经是浮点数的四字节数据,但是我在编写程序时使用实际的浮点数数据。关于浮点数的知识,大佬已经讲的很清楚,大家可以参考。直接上代码:【直接可以得到浮点数】二、进行四字节的浮点数转换。
2026-02-02 14:13:46
39
转载 C语言——关于float型转为4个字节的格式(利用共用体)
在单片机对外发送的时候我们经常需要将字节拼起来,但是有的数据是浮点型或者double类型,要将其转换为字节形式,方便数据进行校验值计算等操作。}trans;//浮点转换i<4;i=0)AI写代码c运行版权声明:本文为CSDN博主「老王WHH」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
2026-02-02 13:29:13
65
原创 HEX数据00,显示为ASC码,怎么是是\0
表示的是十六进制的 0,其对应的十进制值为 0。在 ASCII 编码体系中,值为 0 的字符是 。显示为 ASCII 字符时,它会显示为。,这是由于其在 ASCII 码表中的定义。被显示为 ASCII 字符时,它就是。所以,当你看到 HEX 数据。,它是一个控制字符,通常用。在计算机中,HEX数据。当你将 HEX 数据。
2026-01-22 16:49:18
101
转载 定时器中断子程序内部可以选择执行不同的子程序吗?加标识位区分执行不同子程序。操作系统时间片定时器中断后执行各个进程子程序,实际是中断服务程序中有进程调度函数,该函数根据标识条件按一定规则调用进程
通过本项目,我们在8051单片机上实现了简单的多任务处理。虽然8051单片机本身不支持多任务处理,但我们可以通过定时器中断和计数器来模拟任务切换,达到并行执行多个任务的效果。我们使用定时器模拟时间片轮转,并通过LED灯和按键扫描实现了两个简单的任务。这种多任务处理的方法适用于资源有限、对实时性要求较高的嵌入式系统。虽然其功能相对简单,但足以满足一些嵌入式应用的需求,例如控制LED灯、扫描按键等。
2026-01-20 10:27:56
61
转载 光电池的电流方向与PN结极性相反
当光照射到PN结时,光子激发电子-空穴对,内建电场将光生载流子分离:电子被拉向N区,空穴被拉向P区,导致P区积累正电荷、N区积累负电荷,从而在开路时产生光生电压。外接负载后,电流从P区流出、经外部电路流向N区,这与PN结在正向偏置时的电流方向(从P区流入、N区流出)相反。而光电池基于光伏效应,无需外加偏压,依靠内建电场分离光生载流子,其电流方向由光生电场决定,与热平衡PN结的电流方向相反。 光电池的输出电压和电流受负载电阻影响,因为负载改变外电路电场,削弱内建电场,从而影响载流子迁移效率。
2026-01-15 14:27:31
105
转载 串口监听原理是 第三个串口监听线路影响正常信号传输吗
硬件监听则需谨慎设计,理想情况下通过高阻抗接入最小化负载效应,但实际中可能因信号衰减、串扰或阻抗不匹配导致问题,例如分接电路可能增加总线负载或引入噪声。34 为减少影响,实践中应优先选择软件监听或符合电气标准的硬件方案,并通过隔离器件(如光耦)增强抗干扰能力。硬件方法则可能使用二极管分接电路将TX和RX信号合并到监听端口,利用二极管的单向导通性防止信号回流,但设计不当可能引入信号干扰或电平偏移。虚拟串口通过软件模拟串口对实现数据透传,需要进一步补充。,监听软件同时读取物理串口和虚拟串口数据并转发。
2026-01-14 10:21:15
55
转载 【STM32】SysTick操作系统延时函数的讲解,手撸带操作系统的延时函数
1. 流水灯模拟多线程用一个流水灯小实验学习systick,模拟多线程1.1 main.c先看main.c文件,main函数中实现两个灯进行不同的任务#include "sys.h"#include "delay.h"#include "led.h"#include "tasks.h" int main(void){ HAL_Init(); /* 初始化HAL库 */ stm32_clock_init(RCC_PLL_MUL9
2026-01-07 14:53:11
79
转载 单片机添加数学公式的头文件MDK5的安装路径中有包含数学公式的头文件等
这是一个将value值拆分成小数部分f和(以2为底的)指数部分exp,并返回小数部分f,即f*2^exp。//串中的数可以由有效浮点数中的任何字符结束,如空白符、除句号外的标点符号和E或e之外的字符等。//把str指向的串转换为整数(int)值。//串中的整数内容可由任何不是该整数的一部分的字符终止,如空白符、标点符号和字符等。//串中的整数内容可由任何不是该整数的一部分的字符终止,如空白符、标点符号和字符等。//把str指向的串转换为双精度浮点值,串中必须含合法的浮点数,否则返回值不确定。
2025-12-22 13:13:06
65
转载 C 语言数据进制详解:常见进制、前缀表示、格式化输出、混合运算、整数转换、小数转换、转换工具,图片详情可见最后链接网址
规则:采用【取四合一法】,从二进制数的最低位(右端)起,将二进制数每四位一组(最高位不足四位时,在左侧补零),然后将每四位二进制数组合转换为对应的十六进制数(0 - F)。规则:采用【取三合一法】,从二进制数的最低位(右端)起,将二进制数每三位一组(最高位不足三位时,在左侧补零),然后将每三位二进制数组合转换为对应的八进制数(0 - 7)。规则:采用【按权展开法】,从十六进制数的最低位(最右侧)开始(第 0 位),每一位的值(A=10,B=11 ... F=15)乘以 16 的对应位数,然后累加求和。
2025-12-06 10:43:07
199
转载 关于PCB中蛇形走线
蛇形走线在PCB设计中主要用于信号的等长处理,比如DDR数据组内等长走线、差分信号的等长走线以及一些特殊时序要求的信号走线;关键参数包含平行耦合长度(L)和耦合距离(S),其中S减小或L增大会增强线间耦合效应,建议布线时保持间距S≥3H。版权声明:本文为CSDN博主「屌丝硬件Leo」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。间隙是指蛇形走线之间的距离,应尽量增大。振幅Lp表示蛇形走线的耦合长度,应越小越好;线到参考平面距离的 5倍,3倍。不是线宽的5倍,3倍。
2025-12-01 09:01:13
312
转载 SATA 协议栈详解:从串行信号到读写硬盘(SATA_A+, SATA_A-) 差分对是 HBA 发送、device 接收(即 对HBA 来说是 TX 通道,对 device 来说是 RX 通道)B同
如图4是 SATA 协议栈结构,从下游到上游包含:物理层(Physical Layer, PHY)、链路层(Link Layer)、传输层(Transport Layer)、命令层(Command Layer)。图4:SATA 协议栈物理层的下游用两对串行差分信号对连接 SATA device ,上游与链路层之间传输并行信号。时钟恢复。
2025-11-26 10:58:42
565
转载 mSATA (mini-SATA)是迷你版本SATA接口,外型和针脚排布与mini PCI-E完全相同,但针脚信号定义不同,两者互不兼容。
Mini PCI-e是基于PCI-e总线的一种接口,主要用于电子设备之间的互连。其应用主要是使用该接口的模块的相应设计,需要给模块设计相应的外围电路,例如以上海移远的4G模块为例,其minipcie接口在标准接口上有自己的定义。需要注意的是端子的额定电流大小,连接器选型时注意产品应用环境的温度,额定电流的大小以及尺寸等,需要和mini-pcie模块结合考虑,选择合适的器件。需要注意的是,由于不同厂商之间的Mini PCI-e接口规格可能存在差异,选择合适的Mini PCI-e接口设备时需要注意兼容性问题。
2025-11-25 16:16:48
911
转载 sata接口数据只用4条线可以吗,不需要差分时钟吗
SATA数据接口包含7针脚,其中4针用于数据传输(2对差分线),其余为接地或电源。电源接口独立于数据线,通常使用4线(5V、12V、地)。3。
2025-11-25 14:49:46
327
转载 STM32在使用时有时需要禁用全局中断(特权等级下才能使用CPS汇编指令关闭,并且默认是开启中断的,不操作就是开启。处理器复位后默认是特权等级线程模式)
但测试发现这样一个问题,在关闭总中断后,如果有中断触发,虽然此时不会引发中断,但在调用__enable_irq()开启总中断后,MCU会立即处理之前触发的中断。这说明__disable_irq()只是禁止CPU去响应中断,没有真正的去屏蔽中断的触发,中断发生后,相应的寄存器会将中断标志置位,在__enable_irq()开启中断后,由于相应的中断标志没有清空,因而还会触发中断。这样在__enable_irq()开启总中断后,MCU就不会响应之前触发的中断了。
2025-11-20 10:19:07
253
转载 #ifdef GLOBALS_EEROM #define EEROM_EXT #else #define EEROM_EXT extern #end 全局变量在头文件中的定义和声明通过条件编译宏实现
当 编译器处理.C 文件时,它强制xxx_EXT(在相应.H文件中可以找到)为空,(因为xxx_GLOBALS已经定义)。所以编译器给每个全局变量分配内存空间,而当 编译器处理其他.C 文件时,xxx_GLOBAL 没有定义,xxx_EXT 被定义为extern,这样用户就可以调用外部全局变量。表1.2 中的定义出现在定义所有全局变量的.H 头文件中。当编译器处理其他.C 文件时,头文件变成了如下的样子,因为OS_GLOBAL 没有定义,所以OS_EXT 被定义为extern。以下是如何定义全局 变量。
2025-11-14 12:04:24
134
转载 头文件#ifndef __FOO_H__#define __FOO_H__防止重包含重定义。一般#ifndef 开头,以#endif结尾,中间是头文件预处理的内容。重点是避免宏定义被重复定义。全局变量
综上所述,使用#ifndef/#define/#endif,可使得第一次包含头文件时,条件成立,相关的宏被定义且头文件内容被展开。遇到#ifndef FOO_H,检查宏__FOO_H__是否存在:由于此时__FOO_H__已经定义,因此条件不成立。遇到#ifndef FOO_H,检查宏__FOO_H__是否存在:由于此时,__FOO_H__未定义,因此条件成立。现实中,极少有人像上面那样在同一个文件中连续#include同一文件,而更多的是直接或间接#include。
2025-11-14 09:32:16
144
转载 笔记:关于#ifdef xxx_GLOBALS语句的用法
原文链接:https://blog.csdn.net/sinat_42731525/article/details/106276507。xxx_GLOBALS未定义,则xxx_EXT被定义为extern,这种情况下不产生内存分配,任何.c文件都可以使用这些变量。版权声明:本文为CSDN博主「~狂想家~」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。在编写程序时,尽可能少用全局变量,使用时也要注意,防止在程序运行中重入导致出错。2.在处理其他.c文件时,
2025-11-13 16:43:13
89
转载 MDK5打开MDK4项目工程时出现的不兼容及解决方法,Migrate to Device Pack(迁移到设备包) 和 Install Legacy Support(安装遗留支持)。
在这个窗口中提示了两种解决方法:Migrate to Device Pack(迁移到设备包) 和 Install Legacy Support(安装遗留支持)。版权声明:本文为CSDN博主「MC数据局」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/WASEFADG/article/details/113520872。先尝试了第一种方式,进来之后,查看可以找的设备,但是一编译,就报好多错误。
2025-11-05 13:35:23
221
转载 电动车充电器空载无输出,防反接保护电路原理
由于无电流流向三极管集电极,BT151 晶闸管的门极只得到 R5给到的一个弱下拉,门极此时电位为0V,晶闸管保持关断状态,OUT-端只得到通过R1和R2给到的一个弱上拉,OUT+ 和 OUT- 都处于高电位,无电压差,整个输出回路处于断开状态。当电池正确接入时,OUT- 被拉至低电位(接近 0V),通过 R2(120kΩ) 对三极管的基极形成强下拉,使其基极电压远低于发射极,三极管导通,晶闸管的门极得到足够的触发电流,晶闸管导通,电池开始充电。家里电动车充电器不充电了,经过拆开测试,二次侧输出电压正常;
2025-10-20 13:48:34
1333
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅