- 博客(46)
- 收藏
- 关注
原创 模拟电子技术-基本放大电路
基本放大电路概念:本质上是功率放大,包含了电压和电流,同时是对能量的控制和转换目标:小功率信号 -> 大功率基本放大电路组成必须要存在有源元件,包括三极管和场效应管等基本放大电路的前提不失真,失真无意义正弦波构建放大电路时,以三级管为例,三极管必须要控制在放大状态下;小信号控制iB(UBE);合理输出。
2025-03-27 14:09:49
800
原创 电源电路篇
一般情况下,大电容靠近电源输入端VIN滤波滤除低频噪声,提供能量存储;小电容靠近芯片端(IC)和Vout端用于高频滤波,改善瞬态响应。
2025-03-20 19:10:35
1273
2
原创 模拟电子技术-常用半导体器件
PN结:将P型和N型半导体制作在同一个块硅片上,在交界处形成PN结,PN结具有单向导电性(P->N)P型半导体和N型半导体中的空穴和自由电子的扩散运动(浓度高->浓度低)形成空间电荷区(PN结),促成了PN结的性能随着扩散运动的进行,空间电荷区(耗尽层、阻挡层、PN结)加宽,内电场加强,方向为N区指向P区,正好阻止了扩散运动的进行,达到动态平衡类似于N区正离子和P区的多数载流子-空穴互斥,P区负离子和N区的多数载流子-自由电子互斥在电场力的作用下,少子(本征激发产生)发生。
2025-01-26 18:27:02
990
原创 一文看懂PCB基础入门知识
PCB板又叫印制电路板,是诸多电子元器件电气连接的载体,像纸张印刷一样,PCB也是印刷出来的,不过它采用的技术叫做电子印刷术PCB板子主要由导线铜皮)、过孔(二层板以上)、丝印焊盘(焊接元器件)、定位孔(个性化要求,无电气性能PCBA(电路板+组装):焊接有电子组件的电路板。
2025-01-12 13:40:54
953
原创 Altium Designer24教程——PCB部分
PCB封装组成元素:(1)PCB焊盘:用来焊接元件管脚的载体(2)管脚序号:用来和元件进行电气连接关系匹配的序号(3)元件丝印:用来描述元件腔体大小的识别框(4)阻焊:防止绿油覆盖,可以有效地保护焊盘焊接区域(5)1脚标识/极性标识:主要是用来定位元件反向的标识符号。
2025-01-11 15:57:00
1426
原创 Altium Designer24教程——原理图部分
完整的电子设计工程元件库文件原理图文件PCB库文件和PCB文件四大块原理图符号由元件边框管脚(名称和号)元件名称和元件说明组成,通过放置的管脚来建立电气连接关系。
2024-12-30 15:21:53
1392
原创 FreeRTOS-内存管理
在使用FreeRTOS创建任务、队列、信号量等对象时,有动态创建和静态创建(本质上内存分配的问题FreeRTOS提供了5种动态内存管理算法,分别为heap_1heap_2heap_3heap_4heap_5,如下所示heap_1:只实现了pvportMallor(创建),没有实现vportFree(释放),只能申请无法释放内存,管理的内存堆是一个数组heap_2:使用最适应算法,支持释放内存,但不能将相邻的空闲内存块合并成一个大的空闲内存块,不可避免的会产生内存碎片内存碎片。
2024-10-11 12:47:17
432
原创 FreeRTOS-Tickless低功耗模式
裸机开发时可以使用MCU的低功耗模式,见STM32F1单片机-PWR电源控制FreeRTOS提供了Tickless的低功耗模式,方便应用开发FreeRTOS使用睡眠模式进入低功耗模式,Tickless低功耗模式本质上是调用WFI指令实现睡眠模式有时候在任务运行时间统计中,大部分的时间都是在执行空闲任务系统其他任务被阻塞或者挂起时运行),所以需要进入低功耗模式去降低功耗的情况下不影响系统运行,即在执行空闲任务的期间,让MCU进入低功耗模式,当其他任务准备运行时,唤醒MCU退出低功耗模式宏配置成1。
2024-10-10 14:51:50
475
原创 FreeRTOS-软件定时器
定时器:指定时间开始,经过一个指定的时间,触发一个超时事件,用户可自定义定时器的周期硬件定时器:硬件自带的定时器模块,精度高,定时时间到达以后可以触发中断,调用中断函数缺点是个数有限软件定时器具有定时功能的软件,可设置定时周期,当指定时间到达后要调用回调函数(也称超时函数),用户在回调函数中处理信息,成本低,内存足够的情况下个数不限,但精度不高可裁剪配置成1使能定时器、支持设置单次定时器或周期定时器软件定时器的超时回调函数是由软件定时器服务任务调用的,超时回调函数本身不是任务。
2024-10-10 14:06:22
1526
原创 FreeRTOS-任务通知
任务通知:用来通知任务,任务控制块(TCB)中的结构体成员变量ulNotifiedValue就是这个通知值使用队列信号量事件标志组时都需另外创建一个结构体,通过中间的结构体进行间接通信使用任务通知时,任务结构体TCB中就包含了内部对象,可以直接接收别人发来的通知任务通知优势效率高使用内存更小(使用其他方法需要创建对应的结构体)任务通知劣势无法发数据给ISR(ISR没有任务结构体)、无法广播给多个任务(任务通知只能是被指定的一个任务接收并处理)、无法缓存多个数据(只能保存一个数据)、
2024-10-09 12:26:22
963
原创 FreeRTOS-事件标志组
事件标志位:用一个位来表示事件是否发生,裸机中的中断标志位等等事件标志组:是一组事件标志位的集合,简单认为就是一个整数事件标志组特点:它每一个位表示一个事件(高8位不算)。每一位事件的含义由用户自己决定(1表示发生,0表示未发生)。任意任务或中断都可以读写这些位。可以等待某一位成立或者等待多位同时成立事件标志组的32位标志位,其中的高8位用来存储事件标志组的控制信息,低24位用作存储事件标志,一个事件组最多可以存储24个事件标志,位23表示事件标志23等以此类推。
2024-10-08 20:37:51
362
原创 FreeRTOS-信号量
信号量是一种解决同步问题的机制,可以实现对共享资源的有序访问。信号量中存在计数值,计数值>0时表示信号量有资源信号量仅存放数值,无法存放其他数据;释放信号量,不可阻塞,计数值++,计数值最大时,返回失败;获取信号量,计数值–,当没有资源时,可阻塞二值信号量的本质是一个长度为1的队列,该队列就只有空和满两种状态(0,1),这就是二值二值信号量通常用于互斥访问(条件判断只有一种情况满足)或任务同步(任务按前后顺序执行下面是二值信号量相关的API函数使用二值信号量的过程创建二值信号量。
2024-09-28 16:06:03
1102
原创 FreeRTOS-队列及队列集
队列是任务到任务、任务到中断、中断到任务数据交流的一种机制(消息传递使用队列的情况下如图,在写读队列时,会进入临界区,无法触发任务调度,不会出现多任务冲突,只需要调用API函数即可在队列中可以存储数量有限大小固定的数据。队列中的每一个数据叫做“队列项目”,队列能够存储“队列项目”的最大数量称为队列的长度队列采用先进先出(FIFO)的数据存储缓冲机制,即先入队的数据会先从队列中被读取,FreeRTOS也可以配置成先进后出的方式FreeRTOS中队列采用实际值传递,或传递地址任何任务和中断。
2024-09-27 16:05:54
714
原创 FreeRTOS-时间片调度
同等优先级任务轮流的享有相同的CPU时间(可设置),叫时间片,在FreeRTOS中,一个时间片就等于SysTick中断周期,所以说时间片大小取决于滴答定时器中断频率运行完Task1一个时间片后,切换到Task2,Task2运行完一个时间片后,切换到Task3运行假设Task3运行到一半时,Task3被阻塞(系统延时或等待信号量等)了,此时直接切换到Task1。
2024-09-22 16:33:21
559
原创 FreeRTOS-列表及列表项
链表是一种物理存储上非连续,数据元素的逻辑顺序通过链表中的指针链接次序,实现的一种线性存储结构,主要分为单向链表和双向链表链表由一系列节点(链表中每一个元素称为节点)组成,节点在运行时动态生成,每个节点包括存储数据的数据域和存储下一个节点地址的指针域(第n节点的指针域保存第n+1节点的地址)链表最大的作用就是通过节点把离散的数据链接在一起,组成一个表,常规操作包括节点的插入和删除,人为规定了一个根节点,根节点有一个节点计数器,用于统计整条链表的节点个数下图为单向链表图,每个元素都是一个节点,里面包括数据域。
2024-09-21 17:56:32
515
原创 GD32F103单片机-EXTI外部中断
GD32和STM32的EXTI基本相似,具体见STM32F1单片机-外部中断GD32的EXTI包括20个相互独立的边沿检测电路请求产生中断或事件,4位优先级配置寄存器16个优先等级GD32的EXTI有三种触发方式上升沿下降沿和任意沿触发如下图为EXTI框图,通过(IO的16个管脚和内部模块的4根线)一共20条线路进入到边沿检测,或通过软件触发,最终通过中断屏蔽控制(挂起标志位-指示有中断发生,不意味着中断处理已经完成)到NVIC产生中断或者产生事件下图为EXTI触发源对应表NVIC见。
2024-09-14 16:38:12
1885
原创 FreeRTOS-临界段保护及任务调度器的挂起和恢复
临界区运用首先在任务创建实验里临界段代码又叫临界区,是指那些必须完整运行不能被打断(中断或者任务调度)的代码段外设-需要严格按照时序初始化的外设:IIC、SPI等。系统-系统自身需求。用户-用户需求临界区是直接屏蔽了中断,系统任务调度靠中断,ISR也靠中断FreeRTOS在进入临界段代码的时候会关闭中断,当处理完临界段代码后再打开中断成对使用支持嵌套尽量保持临界段耗时短下面是临界段相关函数//任务级进入临界段//任务级退出临界段//中断级进入临界段//中断级退出临界段任务级临界区。
2024-09-14 11:22:40
480
原创 FreeRTOS-中断管理
具体STM32的NVIC管理见添加链接描述ARM Cortex-M使用了8位宽的中断优先级配置寄存器来配置中断的优先等级STM32只用了寄存器的高4位,所以只提供16(2^4)级的最大中断优先等级STM32的中断优先级分为抢占优先级和子(响应)优先级,建议将所有优先级位指定为抢占优先级位,方便FreeRTOS管理中断优先级数值越小,优先级越高。任务优先级数值越大,优先级越高抢占优先级:抢占优先级高的中断可以打断正在执行且抢占优先级低的中断子优先级:当同时发生具有相同抢占优先级。
2024-09-13 14:49:41
1282
原创 FreeRTOS-任务挂起和恢复
任务挂起是指将某个任务从就绪态或运行态中移除,并将其置于挂起态,让它暂时不再参与调度,不分配CPU时间片,直到它被恢复挂起任务时,它会立即停止运行,直到该任务被显式恢复。挂起任务用于节省CPU资源或防止某些任务在特定条件下继续执行挂起任务可以恢复,而删除任务无法恢复任务恢复是指将挂起的任务从挂起态恢复到就绪态,使其可以再次参与调度,并根据其优先级来决定何时运行任务恢复通常是在外部条件发生变化、或另一个条件ISR(中断服务程序)通知当前任务可以继续工作时使用下面是任务挂起和恢复的API函数。
2024-09-11 21:27:47
614
原创 FreeRTOS-任务创建和删除
任务的创建和删除本质就是调用FreeRTOS的API函数(指可供用户调用的函数,用于管理和控制操作系统的各种功能)下面是任务创建和删除的API函数和描述//动态方式创建任务//静态方式创建任务//删除任务。
2024-09-10 16:30:32
836
原创 GD32F103单片机-GPIO
GD32的GPIO同STM32一样,GPIO可以配置成8种输入输出模式,由软件配置成推挽输出开漏输出复用推挽输出复用开漏输出上拉输入下拉输入浮空输入模拟输入(ADC)当GPIO配置成输入模式时,可以选择弱上拉和下拉电阻,输出缓冲器禁用(不可以输出当GPIO配置成输出模式时,弱上拉和下拉电阻禁用开漏模式输出低电平,高电平时为高阻态无法输出高电平),允许外置上拉电阻拉高电平,从而可以准确读取外部输入信号。推挽模式下,可以输出高低电平,可以进行读引脚输出电平的操作,若需要读取外部信号输入,必须。
2024-09-09 12:50:00
1080
原创 FreeRTOS-基本介绍和移植STM32
裸机:前后台系统,前台系统指的是中断服务函数,后台系统指的是大循环,即应用程序特点实时性差、delay(浪费资源)、结构臃肿(实现功能都放在无限循环)FreeRTOS开发:实时操作系统,强调的是实时性特点分而治之(实现功能划分为多个任务)、延时函数(不会空等待,会让出CPU的使用权给其他任务,即任务调度)、抢占式(高优先级任务抢占低优先级)、任务堆栈(每个任务都有自己的栈空间,用于保存局部变量以及任务的上下文信息)任务调度器就是决定在某一个时刻调用哪一个任务,切换速度很快,造成在。
2024-09-08 13:10:16
1964
原创 GD32F103单片机-概述和工程建立
GD32F103系列由是由国内公司兆易创新生产的基于Arm Cortex-M3处理器的单片机位数:32位工作电压:2.0V-3.6V最高工作频率:108MHzRAM:20kROM:64K。
2024-09-03 23:11:15
2182
原创 物联网---ESP32
ESP32是一款无线通信单片机,有32位处理器,内置SRAM和闪存2.2V-3.6V供电,支持WIFI和蓝牙,时钟为26MHz和32KHz晶振,包括GPIO、UART、SPI、I2C、PWM、ADC等外设固件下载方式主要是UART下载网络协议是IPv4、IPv6、TCP/UDP/HTTP/MQTT用户配置方式有AT+指令集云端服务器安卓/IOS APP开发ESP32主要使用的环境是ESP-IDF和Arduino IDE两种下图为ESP32管脚布局,具体芯片有所不同,但大致一样。
2024-08-26 15:21:17
7914
1
原创 温湿度传感器---DHT11
DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,传感器内部包括一个8位单片机控制一个电阻式感湿元件和一个NTC测温元件类单总线协议传输数据,使用简单便捷测量温度范围在0-50℃,分辨率为1℃,误差在±2℃。湿度的测量范围位20%-95%RH,分辨率为1%RH,误差在±5%RH工作电压:3.3V-5.5V。
2024-08-23 19:08:13
6126
1
原创 STM32F1单片机-FLASH闪存
STM32F1系列的FLASH(ROM掉电不丢失)包含程序存储器系统存储器和选项字节三个部分,通过闪存存储器接口外设)可以对程序存储器和选项字节进行擦除和编程ROM掉电不丢失,存储介质FLASH,RAM掉电丢失,存储介质SRAM读写FLASH的用途:利用程序存储器的剩余空间来保存掉电不丢失的用户数据通过在程序中编程(IAP),实现程序的自我更新在线编程(ICP)用于更新存储器的全部内容,它通过JTAGSWD协议或系统加载程序下载程序在程序中编程(IAP)可以使用微控制器支持的任一种通信接口下载程序。
2024-06-20 20:16:35
1642
1
原创 STM32F1单片机-PWR电源控制和WDG看门狗
PWR负责管理STM32内部的电源供电部分,可以实现可编程电压监测器和低功耗模式的功能可编程电压监测器(PVD)可以监测VDD电源电压,当VDD下降到PVD阈值以下或上升到PVD阈值以上时,PVD会触发中断,用于执行紧急关闭任务低功耗模式包括睡眠模式(Sleep)、停机模式(Stop)和待机模式(Standby),可在系统空闲时,降低STM32的功耗,延长设备的使用时间下图为STM32的电源框图从图中需要知道每个区域的供电引脚以及供电的电路看门狗可以监控程序的运行状态,当程序因为设计漏洞。
2024-06-20 14:39:50
1234
原创 STM32F1单片机-BKP和RTC
利用c语言库time.h中的函数,实现写入和读取时间,即计数器值和时间数据的相互转换。STM32的VBRT引脚接在ST-Link的3.3V,PB1接一个按键。灰色填充部分属于后备区域,在主电源掉电后,可以使用备用电源维持工作。组成,TAMPER有上升沿或者下降沿出现时,清除寄存器内容,保证安全。,同时可以设定闹钟,最终也可以进入中断。类型,结构体成员是秒,分,时等。,经过分频器分频,分频器系数为。,当32位计数器溢出进入中断。,自减到0时,下一个边沿产生。是一个自减计数器,存储当前的。
2024-06-18 17:11:27
1121
原创 STM32F1单片机-通信协议(下)
STM32F1单片机-通信协议(下)一、通信协议介绍二、USART(通用同步/异步收发器)2.1 USART框图和基本结构2.2 串口发送2.2.1 Printf函数移植2.2.2 串口发送汉字2.3 串口接收2.3.1 串口接收+查询2.3.2 串口接收+中断2.4 USART串口数据包2.4.1 数据包格式2.4.2 数据包接收流程2.4.3 串口收发Hex数据包2.4.4 串口收发文本数据包三、I2C通信3.1 I2C介绍3.2 I2C数据帧3.3 I2C驱动代码3.4 MPU6050姿态传感器3.5
2024-06-18 11:26:43
1177
原创 STM32F1单片机-ADC和DMA
DMA可以提供外设数据寄存器和存储器(运行内存SRAM和程序存储器Flash)或存储器和存储器之间的高速数据传输,无需CPU干预,节省CPU资源12个DMA1(7个通道),DMA2(5个通道)每个通道都支持软件(存储器与存储器之间)和特定的硬件触发(外设与存储器)DMA1(7个通道)下面给出存储器的地址Flash只读不可写,SRAM任意读写,外设寄存器看参考手册描述,但其中的数据寄存器是可以正常读写的。
2024-06-03 20:06:04
4051
原创 STM32F1单片机-TIM定时器
定时器对输入的时钟进行计数,计数值达到设定值时触发中断16位计数器在72MHz计数时钟下可以实现最大59.65s的定时单片机频率:每秒钟计多少个时钟周期,以72MHZ为例,就是1s计72M个时钟周期。那计次1个时钟周期就是1/72MSTM32中一个基准时钟(时钟周期)是1s/72MHz,计72个数字就是过了1s/72MHz×72 = 1us,如果计72000个数,那就是1ms定时中断内外时钟源选择输入捕获输出比较编码器接口主从触发模式等多种功能定时器根据复杂度和应用场景分为基本定时器通用定时器。
2024-05-28 17:37:53
2376
原创 STM32F1单片机-EXTI外部中断
每个中断有16个优先级,优先级再区分为抢占优先级和响应优先级,对16个优先级进行分组,0-15表示16个优先级,值越小优先级越高,将四位二进制切分,高n位的抢占和低4-n位的响应。旋转编码器有两个接口,会输入两个中断信号,于是需要定义两个中断通道,这里A相接PB0,B相接PB1,配置EXTI和NVIC,需要同时配置两个中断。先看抢占优先级、相同则看响应优先级、相同则看中断号,数值越小,优先级越高。进入中断函数,判断中断标志位,及时清零,否则一直会进入中断。),抢占优先级和响应优先级均相同的按。
2024-05-17 17:22:03
1485
1
原创 STM32F1单片机-OLED显示屏
OLED:有机发光二极管,主要有0.96寸(SSD1306/1315)和1.3寸(SH116)显示屏0.96寸OLED模块如下图所示,分别为4针4行16列)和6针4行16列供电3-5.5V,通信协议I2C4针)/SPI6针),分辨率:128*64下图分别为4针和6针OLED接线图。
2024-05-16 16:34:46
1011
原创 STM32F1单片机-GPIO
stdint关键字使用了新名称来定义数据类型,ST是老版本的数据类型名(例:int8_t有符号8位,uint8_t无符号8位) #define:用一个字符串去代替一个数字。例#define ABC 12345 typedef:将一个比较长的变量类型名换个名字(针对变量类型)。例typedef unsigned char uint_8,即unsigned char a等效于uint_8 a 定义结构体变量(struct {数据类型} 结构体名): struct {char x;int y;fl
2024-05-15 22:39:02
1149
原创 STM32F1单片机-概述和工程建立
STM32是ST公司基于内核开发的32位微控制器(ARM内核由ARM公司设计)高性能系列:STM32F2、F4、F7和H7系列;主流系列F1、G4和F3系列;超低功耗系列:STM32L0、L1、L4、L4+、L5和U5系列;无线系列:STM32WL和WB系列;STM32寻址范围:0x 0000 0000 - 0xFFFF FFFF系列:主流系列STM32F1位数32位内核:ARM Cortex-M3主频72MHZROM:64K(Flash闪存)供电:2.0~3.6V(
2024-05-13 18:57:42
1607
原创 51单片机-DS1302
DS1302是由美国DALLAS公司推出的低功耗实时时钟芯片。它可以对年、月、日、周、时、分、秒进行计时,且具有闰年补偿等功能实时时钟,是一种集成电路,通常称为时钟芯片,有备用电池,可以掉电运行定时器也可以实现实时时钟的功能,采用DS1302是因为定时器实现精度不高、占用单片机CPU的时间且定时器时钟不可以掉电运行。
2024-05-13 18:28:02
3449
1
原创 51单片机-红外遥控
时,红外LED才发光,第一个是38KHz的方波频率(抗干扰),IN口是发送的高低电平,最终红外LED会以38KHz的频率闪着亮。有效,当有按键按下时,进入中断服务函数,进行时序编码,红外接收头将4个字节数据发送给单片机,主函数通过按键命令值,进行其他动作。遥控器按下按键,红外接收头接收到数据以后,通过编码时序将数据发送给单片机。当接收头接收到信号,内置设备完成解码后,需要立即从。端口接在单片机上,红外接收头。输出给单片机,进行其他操作。,所以需要将OUT口接在。,所以采用外部中断更好。
2024-05-11 21:11:17
1518
1
原创 51单片机-AD/DA
模拟-数字转换,将模拟信号转换为计算机可以操作的数字信号,例如将模拟电压转换为数字量,可以应用在光敏、热敏、麦克风等等一些外设上数字-模拟转换,将计算机输出的数字信号转换为模拟信号XPT2046是一款触摸屏控制器,这点我们无需理会,只需要知道它内置了12分辨率AD转换器下图为XPT2046模块电路原理图,其含逐次逼近型AD转换模块CS使能,DCLK串行时钟线,DIN是地址输入,DOUT是输出AD转换完成的数字量AIN0、1、2连接在了传感器的模拟输出口传感器的模拟量通过AINx进入。
2024-05-09 23:42:04
1594
原创 51单片机-PWM(脉冲宽度调制)
直流电机是一种将电能转换为机械能的装置。一般的直流电机有两个电极,当电极正接时,电机正转,电极反接时,电机反转除直流电机外,常见的电机还有步进电机、舵机、无刷电机(转速快)等等由于电机的功率比较大,直接接在单片机的IO口上会损坏电路,所以需要驱动电路来驱动电机大功率器件直接驱动电路:电机只能正转电机正负极反接时,可以实现反转H桥驱动:可以实现电机的正转和反转舵机是一种位置(角度)伺服的驱动器,适合角度变化并可以保持的控制系统,或者需要固定速度旋转的控制系统。
2024-05-08 21:13:27
2707
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人