自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 运放篇——理想运放与实际运放

很多实际运放可以等效为理想运放,特别是在低频下(几十微安uA),理想运放分析接近于现实的精确结果。以下为理想运放与现实运放的差别。

2024-08-25 17:48:02 432

原创 数据结构之线性表

线性表L可以用二元组形式描述:L=(D,R),其中D为数据集合(data),R为关系集合(relation)。使用L=(D,R) 表示,则D = {1,2,3,4,5,6}(n=6)例,设有一个顺序表L={1,2,3,4,5,6},则它的关系如图所示。2、顺序存储的特点:逻辑上相邻的两个元素,在存储位置上也是相邻的。依次存储线性表的数据元素,这种存储结构的线性表称为顺序表。2)线性表的特点:在线性表的数据集合D中,除第一个元素。数据元素之间的关系是一对一的关系。1、线性表的顺序表示指的是用一组地址。

2024-02-08 17:50:59 477 1

原创 STM32之定时器

STM32F4xx系列共有14个定时器,其中2个高级定时器、10个通用定时器、2个基本定时器。下图为各定时器及其功能。图1.各定时器及其功能。

2024-02-08 17:50:16 926

原创 STM32之USART

串口通信,通用异步收发传输器(Universal Asynchronous Receiver/Transmitter ),简称UART;而USART(Universal Synchronous/Asynchronous Receiver/Transmitter)通用同步收发传输器。USART主要用于产生相关接口的协议信号,如RS-232,RS485等;

2024-02-06 15:14:27 2005

原创 开关电源学习之Boost电路

而在升压的电路设计方案中,使用到一个重要的元器件:电感。电感的特性:,说人话就是:流过电感的电流不会突变,即阻碍电流的突变,且具有短暂储能的特性。电感本质上也是导线,只是把导线绕成相互平行的模样。法拉第电磁感应定律:由于电流通过导线,会产生磁场。右手螺旋定则:由于电流通过旋转的导线,用拇指朝电流方向,四指的方向即为磁场的方向,在磁场当中,垂直切割磁感线,会产生电流,用右手定则,磁感线发送方向穿过手心,拇指指向切割方向,四指指向即为电流的方向。

2024-02-06 15:14:15 621

原创 通讯基本概念

通信的方式有多种,按数据传输方式可分为串行通讯和并行通信;按通信数据同步方式可分为同步通信和异步通信;按数据通信的方向可分为。

2024-02-04 16:53:59 340

原创 开关电源学习之Buck电路

在Buck电路中,采用开关器件替代了上述电路的开关,在开关闭合时,二极管D1承受反向电压,处于截止状态;在开关断开时,二极管D1承受正向偏压,处于导通状态,二极管D1形成了如下的续流回路,因此D也叫作续流二极管。观察上方的电路,当开关闭合到A点时,电流流过电感线圈,形成阻碍电流流过的磁场,即产生相反的电动势;电感L被充磁,流经电感的电流线性增加,在电感未饱和前,电流线性增加,在负载R上流过电流I。小,实现降压的功能。通过控制开关器件的占空比,就可以控制输出电压。时,电容放电以维持负载R的输出电压。

2024-02-03 19:52:03 389

原创 数据结构之直接插入排序

基本思想:通过一趟排序,将待排序分割成两个独立的部分,其中一部分记录的关键字均比另一部分小。①每一次的子表的形成是采用两边向中间交替逼近法;②由于每躺对各子表的操作类似,可采取递归算法。

2024-02-02 22:46:09 136

原创 STM32时钟系统

时钟系统由振荡器(信号源)、定时唤醒器、分频器等组成的电路。振荡器:用来产生重复电子讯号的电子元件。其构成的电路叫振荡电路,能将直流电转换为具有一定频率交流信号输出的电子电路或装置。常见的振荡器有RC、LC振荡器和晶体振荡器。

2024-02-02 22:45:25 458

原创 STM32的中断系统详解

中断是指CPU在正常执行程序时,遇到外部/内部的紧急事件需处理,暂停当前程序的执行,转而去处理紧急事件,待事件处理完毕后,返回被打断的程序继续执行,这个过程就称之为中断。中断的意义:提高CPU的效率,并且能实时处理紧急事件;中断在多任务处理中,尤其重要。异常与中断的概念相近,异常是指由内核产生的中断。如指令执行错误。如果没有特殊说明,中断特指外部中断,外部中断:由外部设备或外部信号引发,例如按键按下、外部传感器信号变化等。外部中断用于响应外部事件,并及时处理相关任务。

2024-01-31 23:26:15 1143

原创 开关电源PFC电路

电流与电压不同相,产生无功功率,并且这些无功功率在电机与电源之间来回传送,导致在传输相同有功功率的情况下的线路电流增大,线路加大损耗。在开关电源中,输入级普遍采用整流滤波的形式,由于滤波电容上电压的存在,整流二极管只会在输入电压大于电容电压时才会导通,不然截止,在这种情况下,充电电流经过整流滤波后,虽然与电源电压同相,但是。,不再是正弦波,在这种波形中,含有大量高阶谐波,产生无功功率,这时候就需要具有把电流的波形校正,使其接近正弦波的功能的一个电路,而这个电路就是PFC(功率校正电路)。

2024-01-31 17:58:42 496

原创 谐波齿轮减速器

外装柔性轴承3的波发生器凸轮2(H)装入柔轮1,使之产生弹性变形而呈椭圆状,长轴两端的齿与与刚轮4的齿完全啮合,短轴两端的齿与刚轮的齿完全脱开。当刚轮固定,高速轴带动波发生器凸轮和柔性轴承连续转动时,柔轮上原来与刚轮啮合齿对啮出后脱开,再转入啮入,然后重新啮合,这样柔轮就相对于刚轮沿着与波发生器相反的方向低速旋转,通过低速轴输出。轮的齿数比刚轮少2个,柔轮的齿轮和刚轮的齿啮合一圈下来,相对于刚轮,少啮合了2个齿,而这两个齿就是柔轮和刚轮的相对位移。刚轮的转向与波发生器的转向相同,即同向。

2023-12-16 18:57:39 707

原创 C语言之变量的存储方式和生存周期

2、第一调用fac函数fac返回时f的内存被回收,第二次调用fac函数,又重新给f分配内存,所以两次的f是相互独立的变量。1、由于f是静态变量,因此在程序执行前就为f分配内存,在运行过程中不会再次初始化,直到程序结束才回收内存。C语言变量的存储有两种方式:静态存储方式和动态存储方式,相应的生产期也有两种:静态生存期和自动生存期。①静态存储方式:在程序运行前为变量内存分配内存,在程序结束后回收变量的内存。在离开作用域后,回收其内存。注意:由于寄存器变量存储在CPU的寄存器中,不存储在内存单元中,

2023-12-16 12:00:00 355

原创 晶闸管(可控硅)

工作原理:在单向晶闸管未导通的状态下,阳极(A)和门极(G)同时接正向电压时,才会变成导通状态,而只要阳极(A)接反向电压,则不会导通;由上述可知,当在晶闸管的阳极加上交流电压时,在电压的正半周,若给门极(G)加一个正触发脉冲,则晶闸管导通,而电压过零时,晶闸管将关断;(详细版本的工作原理可看可不看:阳极(A)和门极(G)同时接正向电压时,下方的NPN导通,产生集电流,上方的PNP导通,从而整个单向晶闸管SCR导通。假如阳极(A)接高电平,阴极(K)接低电平,门极(G)输入一个脉冲信号,整个单向晶闸管导。

2023-12-15 16:41:13 3752

原创 C语言之位域

在计算机的内存中是以字节为单元存储数据的,有些信息的存储,并不需要占用一个字节,只需要用一个或几个二进制位就够了,如性别用0或1就可以取值为男或女。为了节约存储空间,C语言提供了另一种数据结构:位域。位域:把一个字节的8个二进制位划分成几个不同的区域,并说明每个区域的位数。每个域都有一个域名,允许在程序中按域名进行操作。struct位域结构体名位域列表其中位域列表的形式为类型说明符 位域名:位域长度。

2023-12-15 16:39:54 105

原创 C语言之结构体大小

自然对齐:如果一个变量的地址刚好是它长度的整数倍,而这就是自然对齐。变量a的地址是0x04,刚好是4的整数倍,那它就是自然对齐。其实32位操作系统中,数据的存取就好比一个自动化的爪子,系统默认爪子的进给长度为4个字节,每四个字节就抓取一次或跳过抓取,这样做的根本原因:提高CPU的访问效率。④如果结构体内有成员大于处理器的位数,那么就以处理器的位数对齐单元。②每个成员相对结构体首地址的偏移量,一定是该成员长度的整数倍。将其成员变量进行对齐,以提高数据存取的效率。③结构体的长度一定是最长成员的整数倍。

2023-12-14 15:18:25 156

原创 C语言之枚举类型

①每个枚举元素都代表一个整数,C语言按定义时的顺序默认它们的值为0,1,2,3,4……,也就是按后面的加1……以上面的代码为例,sum的值自动设为0,mon的值为1。指定枚举元素sun的值为7,mon为1,以后的枚举元素按顺序加1,直至sat=6。所谓“枚举”就是指将可能的值一一列举出来,变量的值只限于列举出来的值的范围内;注意:枚举成员之间要用逗号“ , ”进行分隔,而不是用“②当然,每个枚举元素的值也可以人为指定,例如。③不同的枚举类型,枚举元素名称不可以相同。④相同的枚举类型,枚举元素的值可以相同。

2023-12-14 15:17:52 193

原创 BCD码盘

4位二进制数字共有16种组合,其中0000B~100IB为8421的基本代码系统,1010B~1111B未被使用称为非法码或冗余码。10以上的所有十进制数至少需要二位8421码字(即8位二进制数字)来表示,而且不应出现非法码;否则就不是真正的BCD数。因此,BCD数是由BCD码构成的,是以二进制形式出现的,是逢十进位的,但它并不是一个真正的二进制数,因为二进制数是逢二进位的。例如: 十进制数45的BCD形式为01000101B,而它的等值二进制数为00101101B(2DH)。

2023-12-11 19:02:28 220

原创 C语言之数据结构(DAY31)

1.先声明结构体类型,再定义该类型的变量如上面的程序已经定义了结构体类型名,就可以用它来定义变量。结构体变量名为student1和student2声明结构体类型就是为了后续定义结构体类型变量时,让系统对之分配存储单元。声明结构体类型就相当于建造一个房子的大框架,定义结构体变量就相当于在房子里摆物件。根据成员的数据类型,32位的系统会为student1分配一个63个字节的存储单元(20+4+1+8+30=63)。2.在声明类型的同时定义变量int num;char sex;

2023-12-11 19:01:56 358

原创 按键消除抖动

硬件消除抖动:开关和1闭合时,a输入0,e输出1,这样下面的与非门f输出0,经过反馈使b是0,则无论按键如何抖动,都能保持输出e是1不变,从而保证f是0输出也不变,而开关和2闭合同理。在检测到开关状态(闭合或断开)后,延时一段时间,若两次检测的开关状态相同,则认为输入有效 ,这里需要注意的是:延时时间要大于抖动时间。由于机械触点的弹性作用使得开关在闭合 及断开的一瞬间发生抖动,从而产生一系列的脉冲,可能会导致后续的电路输入出现错误。硬件消抖常采用的电路如下图所示。

2023-12-10 20:53:54 161

原创 C语言函数实例

同时空格“ ”的ASCII值也是32,减去“ ”也是同样的效果;要求:编写一个程序,统计字符串的小写字母个数,并将字符串中的小写转换从大写。大写字母的ASCII值比小写字母小32,大写字母的值减去32就是小写字母。

2023-12-04 16:59:59 36

原创 C语言之函数

函数定义的四要素:①函数的数据类型,即返回值的数据类型②函数名称③形参说明④完成功能的函数体;定义方法:(1)定义无参函数一般形式:类型名 函数名()函数体或类型名 函数名(void)函数体tips:void表示“空”,即函数没有参数(2)定义有参函数一般形式:类型名 函数名(形式参数)函数体例子:写一个求x和y中最大数的函数int main()//声明函数max//提示输入//输入两个实数//调用max函数return 0;

2023-12-04 16:59:20 152

原创 C语言字符数组和字符串

分析:由于逐个赋值的字符数组不包含“\0”,打印字符串时,就不会结束打印。②字符数组是元素数据类型都是字符类型的数组。如,char ch[3];解决:char ch1[] = {'a','b','c','\0'};数组元素个数也可以省略,数组的元素个数就等于初始字符串元素个数,如。①数组:每个元素都是同一数据类型的数组。①逐个数组元素赋值,如。②用字符常量赋值,如。

2023-11-30 11:24:43 41

原创 C语言之指针

为说明指针,就需知道数据在内存中是如何存储的。在计算机内存中,是以字节(byte)为存储单元的,而每个单元都有相应的编号,即地址。打个比方:点外卖的时候,需要填写你收货的地址,比如说你的房号是2001,而这个房号2001就是地址,或者说,2001指向该房间,而将地址形象地称为“指针”,外卖员通过这个就可以精准的送外卖到你手上。在计算机中,通过指针就可以找到以指针为地址的内存单元。换句话说,指针就是内存单元的地址。(实在傻傻分不清,认为指针就是地址就可以了)例如:在程序中定义了一个整型变量k;int a。

2023-11-29 09:46:36 32

原创 运算放大电路(第一讲)

运算放大电路(简称运放)运放一般有5个引脚,两个供电电压引脚,同向输入端V+,反向输入端V-,输出电压端Vout,大部分教材会省略两个供电电压引脚。关于运放的公式:输出电压=放大倍数×(同向输出电压-反向输入电压)。理想运放的电压特性如上图所示线性区很窄,范围大概就几百mV的量级,只要超出范围就是饱和区,输出电压接近供电电压VCC或VEE。

2023-11-27 20:51:56 531

原创 C语言的字符数组输出例题

功能:求字符串长度(不包含字符串结束标志‘\0’)方法一:输入字符串,不改变输入的字符串,逆序打印。方法二:输入字符串,改变输入的字符串,正常打印。输入一个字符串,然后将其逆序输出。

2023-11-22 19:33:27 40

原创 C语言之位运算符

代码实现:要与上(1111 10111),1左移(y-1)后按位取反即可得到该数。例:int a = 0x14(即0001 0100)的y=3位清0。int a = 0x4(即0000 0100)的y=2位置1,位逻辑反、位逻辑与、位理解或、位逻辑异或、位逻辑移位。思路:或0000 0010,那么这个数如何表达呢?需要或上1

2023-11-22 14:22:22 69

原创 串联谐振电路

通过改变电路的参数去改变电路的谐振频率,在谐振频率工作下的电路,电流是最大的,而其他频率的信号就不会被电路所接受,而电波是由电台所发出的,通过这样就可以就收电台信号啦。③当电压源的频率无限接近特定频率时,电路发生共振,电阻两端电压和流过电 阻的电流都达到最大值,这个特定频率就是LC电路的谐振频率。由公式(1)可得到,线圈阻抗与频率f成正比,当频率f越大,线圈阻抗Xc就越大;①f---->∞,线圈的阻抗无穷大,流过电流为0,电路相当于开路。②f---->0,电容的阻抗无穷大,流过电流为0,电路相当于开路。

2023-11-22 10:37:27 177

原创 C语言之二维数组(DAY13)

二维数组的一般形式:<数据类型> <数组名> [常量表达式1] [常量表达式2]例如:int a[3][4]定义a为3×4数据类型为整型的数组。

2023-11-21 17:54:03 266 1

原创 C语言排序之选择排序

从头到尾扫描序列,找出最小的元素,和第一个元素交换,接着从剩下的元素中继续该选择和交换的方式,最终得到一个有序序列。

2023-11-20 11:40:59 518 1

原创 C语言之转向语句(DAY11)

先判断scanf输入的数据是否是整型,这里需要注意的是:在scanf语句的执行工程中,用户先将数据输入到输入缓冲区,而scanf函数需要从输入缓冲区取数据(只要缓冲区里有数据,scanf语句就会执行,不管取的数据是不是我所需要的,也会把数据拿走),此时就需要把这个错误的数据拿走,如用getchar()语句。程序分析:当n能被3整除时,执行continue语句,程序终止本次循环,就不继续执行下面的printf函数语句,实现不输出被3整除的整数的功能。②break的实例:要求输入一个整数,判断是不是素数。

2023-11-19 10:41:30 96

原创 C语言之循环语句·for(DAY11)

for的一般形式为for(表达式1;表达式2;表达式3)括号里的三个表达式的主要功能:表达式1:一般用来给循环变量赋初始值,并且只执行一次;表达式2:循环条件表达式;表达式3:通常用来修改循环变量的值,例如使循环变量增值,它是在执行完一遍循环体后才进行的。执行过程:先执行表达式1:求解表达式2,若果结果为真,则执行for中的循环体,执行完一遍循环体,进行表达式3的运算,在重新求解表达式2,直至到结果为假,则结束循环。

2023-11-18 21:40:53 116 1

原创 C语言·循环语句之while(DAY10)

while语句的一般形式:while(表达式){循环体语句;while语句的运行工程:先判断表达式的值,表达式的值只有“真”和“假”两种值,若为真,则执行循环体语句;若为假,则不执行循环体语句。可以这么简单地理解:只要当循环条件为真(即给定的条件成立),就执行循环体语句。

2023-11-18 16:16:08 236 1

原创 C语言·switch语句(DAY9)

switch中的变量先去和各个case的值进行匹配,匹配成功后,执行该case后面的语句;注意:每个case后面的语句中,最后都有一个break语句,其作用是使程序转到switch语句的末尾(即“}”处)。多分支选择可以用if…else if,甚至用多层嵌套if实现,但是分支较多时,会使if语句嵌套层数增加,程序可读性变差;问题:要求给出一百分制成绩,要求输出成绩等级'A'、'B'、'C'、'D'、'E'。90以上为‘A’,80~89为‘B’,70~79为‘C’,60~69为‘D’,60以下为‘E’。

2023-11-18 00:34:09 808 1

原创 C语言·控制语句if之计算三角形面积·判断闰年(Day8)

思路:1.输入三角形的三条边;3.根据公式计算三角形面积。首先,要清楚什么是闰年:1.年份能被4整除,但不能被100整除的年份。1、三角形的条件:两边之和大于第三边;两边之差小于第三边。2.年份能被100整除,又能被400整除的年份。

2023-11-17 19:35:59 186

原创 C语言之常量

一、常量在程序运行过程中,其值不发生改变的值称为常量。

2023-11-16 10:25:50 41 1

原创 C语言之强制数据类型的转换

将有符号数变成无符号数时,情况也类似,如8位的有符号数120转无符号也是120,但8位的-1转无符号则为255。要将无符号数强制转化为有符号数时,其内存上的二进制是不会改变的,只是我们对它的解释变了,即无符号数128强制转化有符号数即-128。可以利用强制类型转换,强制将某些数据转换成指定的数据类型。如8位的二进制数将有符号数转换成无符号。计算机是以补码形式存储数据,二进制数与有符号数的对应关系。二进制数与无符号数的对应关系。

2023-11-15 22:35:28 191

原创 C语言之基本数据类型

unsigned short [int]无符号短整型,占2个字节;[signed]short[int] 有符号短整型,占2个字节;unsigned long [int]无符号长整型,占4个字节;[signed]long [int]有符号长整型,占4个字节;unsigned int 无符号整型,占4个字节;[signed]int 有符号整型,占4个字节;char 字符整型,占1个字节;double双精度,占8个字节;float单精度,占4个字节;

2023-11-15 22:26:32 100

原创 嵌入式C语言之数组(DAY12)

举个定义数组int s[30];表示定义一个整型数组,s表示数组名,其中有30个整型元素。先定义数据类型,再定义数组名,最后再定义有多少元素。定义完数组后,内存会分配一个存储空间去存放这30个元素的数组,如下图所示s[1]s[2]s[3]……s[30]既然定义完了数组,那如何引用数组呢?再对数组中的各元素进行赋值,就可以引用数组中的元素。数组名[下标]例1.对10个数组元素依次赋值为0,1,2,3,4,5,6,7,8,9,要求按逆序输出。思路:先用for循环给数组赋值,再用for 循环输出。

2023-11-07 21:16:06 118

原创 入门PFC

PFC是什么?为什么要用PFC?要了解PFC,先知道PF(功率因数,Power Factor),该因数越接近1,效率越高。而PFC,即功率因数校正(Power Factor Correction),对输入电流的波形进行控制,使其与输入电压波形同步,提高功率因数,减少谐波含量,为什么我们接入电网的功率因数不是1呢?下面举个例子:交流单相330V转为直流工作原理:当输入电压Vac小于电容C1两端电压,由于二极管的单向导通性,没有电流流过C1;

2023-11-04 16:19:42 143 1

af9e2869-0eba-4904-bd70-3b9916de3e2.zip

af9e2869-0eba-4904-bd70-3b9916de3e2.zip

2023-12-17

空空如也

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

TA关注的人

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