- 博客(90)
- 收藏
- 关注
原创 [通信原理]信道1:无线信道 × 有线信道
是指以传输媒质为基础的信号通道,其功能是将信号从发送端传送到接收端。可分为狭义信道和广义信道,本章主要讨论狭义信道。就是指传输媒质本身,因此按照传输媒质不同,又可分为和。有线信道利用人造的、能传导电或光信号的媒体来传输信号;无线信道利用电磁波在空间中的传播来传输信号。
2024-10-10 00:15:58
1006
原创 [通信原理]确知信号1:傅里叶分析 × 确知信号
an是关于n的偶函数,bn是关于n的奇函数。在推导复指数形式的傅里叶级数时会使用到。我们已经知道,对于满足狄利赫里条件的周期信号,可将其分解为无穷多的三角函数和。通常我们遇到的周期信号均满足狄利赫里条件,一般不再考虑这一条件。构成的无穷级数来表示,这些函数是正交的,意味着它们之间没有任何相关性。通过此形式的傅里叶级数,可以直观的看出各分量的幅度与相位,从而得到。必须指出,并非任意周期信号都能进行傅里叶级数展开,函数需满足。,又可将三角函数转换为复指数,即:对于该周期信号,也可将其。,则可将其分解为如下的。
2024-09-19 13:52:27
596
原创 [通信原理]绪论2:信息量 × 信息熵
以2为底,单位为比特(bit);以e为底,单位为奈特(nat),1nat=1.44bit;以10为底,单位为哈特(hat);以M为底,单位为M进制单位。常采用以2为底的对数,即以bit作为信息量的单位。【推广】对于等概M进制符号,每个码元包含bit的信息量。对于离散的信源,假设其含有M个可能的取值,且概率如下:于是,每个符号的所含信息量的平均值总信息量除以符号数),即平均信息量为:通常称H为信息熵,代表平均信息量。【注意】当每个符号概率相等(均为1/M)时,信息熵的值最大。
2024-09-15 00:39:19
1008
原创 [通信原理]绪论1:信号 × 通信系统
指用连续变化的物理量表示的信息,其信号的幅度、频率、相位随时间作连续变化,或在一段连续的时间间隔内,其代表信息的。上,目的是为了让信号更适合在信道中传输,从本质来看就是频谱搬移。说白了就是你能知道或者了解到什么东西,这个东西就是信息(往往是抽象的、非物质化的)。只有有限个取值的信号。例如右上的幅值离散、右下的相位离散(2PSK信号)。就如维纳所言:“信息就是信息,不是物质,也不是能量”。消息的电表示形式,作为消息的物质/传输载体。:原式电信号变为适合在信道中传输的信号。:能够传输信号的各种物理媒介。
2024-09-13 00:35:42
623
原创 FPGA开发:条件语句 × 循环语句
用来判断是否满足所给定的条件,根据判断的结果(真或假)决定执行给出的两种操作之一。if(表达式)语句;if(表达式)语句1;else语句2;if(表达式1) 语句1;else if(表达式2) 语句2;else if(表达式3) 语句3;……else if(表达式n) 语句n;else 语句m条件语句必须在过程块中使用,所谓过程块是指和语句所引导的执行语句集合。除了这两种块语句引导的begin end块中可以编写条件语句外,模块中其他地方都不能编写。表达式为0、x、z时均视为假。
2024-09-08 01:42:13
994
原创 FPGA开发:Verilog基础语法
标识符(identifier)就是模块名、端口名、信号名等,可以类比为软件语言中各个变量、函数的名称(说白了就是取名字)。,它的值是由驱动它的元件所决定的,且一旦有变化就会立即变化(组合逻辑)。值得注意的是,reg型变量并不对应物理(现实)上的寄存器,而是。Verilog数字进制格式包括二进制('b)、八进制('o)、十进制('d)和十六进制('h)。变量是一种在程序运行过程中其值可以被改变的量,在Verilog HDL中变量的数据类型有很多种。的值是高阻态的,z的另一种表示方式为"?
2024-09-06 23:55:02
1162
原创 FPGA开发:可编程逻辑器件概述
PLD指Programmable Logic Device,翻译为"可编程逻辑器件"。是20世纪70年代发展起来的一种新的集成电路,是一种半定制的集成电路。PLD具有逻辑功能实现灵活。集成度高、处理速度快的特点。PLD就像是一个可定制的积木盒,里面装满了各种各样的"电子积木"(逻辑门、触发器、寄存器等)。这些积木在盒子里原本没有固定的连接方式,但你可以根据自己的想法,像搭积木一样,将它们连接起来,创造出各种形状的玩具(即实现各种逻辑功能)。
2024-09-05 19:30:53
782
原创 FPGA开发:初识FPGA × 开发环境
Quartus II是Altera公司(已被Intel收购)开发的综合性CPLD/FPGA开发软件,支持原理图、VHDL、Verilog HDL以及ADHL等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。
2024-09-03 23:45:28
2685
原创 FPGA开发:Verilog数字设计基础
IP核,全称知识产权核(Intellectual Property core),在集成电路设计领域中扮演着重要角色。通俗地解释,IP核就是那些已经设计好、验证过,并可以重复使用的电路功能模块或设计模块。它们就像是构建积木一样,可以被设计师们用来快速搭建出复杂的集成电路系统,从而大大缩短设计周期,提高设计效率。软IP固IP(Firm IP Core)和硬IP软IP软IP通常是用硬件描述语言(如VHDL或Verilog)编写的功能描述,它只定义了电路的行为和功能,而不涉及具体的电路实现细节。
2024-09-03 17:47:16
2962
原创 STM32基础篇:PWR
PWR(Power Control),为电源控制模块,负责管理STM32内部的电源供电部分,可以实现可编程电压监测器和低功耗模式的功能。1、可编程电压监测器简称PVD,可以监控VDD电源电压。当VDD下降到PVD阀值以下或上升到PVD阀值之上时,PVD会触发中断,用于执行紧急关闭任务(避免不必要的错误)。2、低功耗模式包括:睡眠模式(Sleep)、停机模式(Stop)、待机模式(Standby),可在系统空闲时,降低STM32的功耗,延长设备使用时间。3、电源框图。
2024-09-02 21:01:38
589
原创 STM32基础篇:RTC × Unix时间戳 × BKP
BKP备份寄存器,可用于存储用户应用程序数据,当VDD(2.0~3.6V)电源被切断,他们仍然由VBAT(1.8~3.6V)维持供电。当系统在待机模式下被唤醒,或系统复位或电源复位时,他们也不会被复位(除非VBAT掉电)。20字节中容量和小容量84字节大容量和互联型对于C8T6芯片,为中容量,对应20字节。可以看出BKP的容量其实非常小,一般只能存储少量的参数。RTC即实时时钟,STM32中RTC是一个独立的定时器,可为系统提供时钟和日历(年月日时分秒)的功能。
2024-09-01 23:41:17
958
原创 STM32基础篇:SPI片上外设
STM32芯片内部集成了SPI片上外设,可由硬件自动执行时钟生成、数据收发等功能,减轻CPU负担。对于STM32F103C8T6,其SPI资源有SPI1、SPI2。8位/16位数据帧高位先行/低位先行时钟频率:PCLK/(2,4,8,16,32,64,128,256)支持多主机模型、主或从操作可精简为半双工/单工通信支持DMA兼容I2S协议【注意】SPI模块的时钟就是由外设时钟PCLK分频(分频系数如上表所示)而来的,APB1的PCLK是36MHz,APB2的PCLK是72MHz;
2024-09-01 18:30:27
891
原创 STM32硬件篇:W25Q64
W25Qxx系列是一种低成本、小型化、使用简单(使用SPI通信协议)的非易失性(掉电不丢失)存储器,常用于数据存储、字库存储、固件程序存储等场景。存储介质:Nor Flash(闪存)时钟频率----------拓展----------上述Dual SPI指双重SPI,当SPI通信只发送或只接收时有点浪费资源,但W25Qxx芯片的厂商不忍心浪费,对SPI做出了一些改进:在只发送时,可以同时用MOSI和MISO发送;在接收时,也可以同时用MOSI和MISO发送。
2024-08-31 23:57:51
2395
原创 初识Arduino
Arduino是一款便捷灵活、方便上手的开源电子原型平台。它包含硬件部分(即各种型号的Arduino板)、软件部分(即Arduino IDE),以及其Arduino社区平台。Arduino由一个欧洲开发团队于2005年冬季开发,成员包括Massimo Banzi、David Cuartielles、Tom Igoe、Gianluca Martino、David Mellis和Nicholas。其设计初衷是为了让电子设计初学者和爱好者能够轻松上手嵌入式开发。【注意】
2024-08-31 01:03:58
2569
原创 STM32基础篇:SPI通信协议
SPI是Serial Peripheral Interface的缩写,翻译成汉语就是串行外设接口。这种总线结构特别适用于高速双向的数据传输场景。例如摄像头模块,因为要传输图像,所以数据通讯的量比较大,一般都会选择使用SPI总线跟单片机建立连接。再比如外接Flash模块,因为我们既要向Flash模块写入数据,又要从它里面读取数据,所以数据通信方向是双向的,且传输速度比较快,因此这种模块适用SPI总线与单片机通信。
2024-08-27 14:53:38
973
原创 STM32基础篇:定时器 × 输出比较
我们向CCR寄存器写值的时候,首先将值写入到影子寄存器里边,影子寄存器里面的值不会立即生效,而是等到下一个定时周期才会生效,即。寄存器值的关系,来对输出电平进行置1、置0、翻转的操作;通过多路复用器来选择信号的极性,如果走上面的路,OCx信号就等于参考信号OCxRef,称之为。而如果走下面的路,会通过一个反相器,此时OCx信号与OCxRef信号相反,称之为。对于输出比较模块,有不同的工作模式可以选择,且不同模式下会输出不同的。如上8种工作模式中,PWM1最常使用,其他模式很少使用。
2024-08-26 17:52:20
718
原创 STM32外设篇:超声波测距模块
就能进一步得出传感器到障碍物之间的距离。在标准大气压下,即温度为15摄氏度时,超声波在空气中的传播速度大约为。:当Trig发出声波后,同时Echo引脚被拉高;直到接收8个周期超声波回来,再将Echo拉低。由一个圆柱体(压电陶瓷超声传感器) 向外发出超声波信号,另一个圆柱体接收反射回来的超声波信号。:将此引脚电平拉高至少10us,模块就会发出8个周期的40KHz超声波,即开启测量。通过测量超声波信号从发送到接受之间的。即:从发送到接收的时间间隔。
2024-08-26 15:04:48
791
原创 STM32基础篇:定时器 × 输入捕获
当我们把外部的信号通过引脚输入进来,定时器会去检测输入信号的变化,比如说当外部信号产生跳变(上升沿或下降沿)时,定时器会对计数器的当前值进行“拍照”,并存储在CCR寄存器里的过程,称之为输入捕获。把CCR里面的值读取出来,就知道跳变的时间了。CCR:捕获/比较寄存器,既可以被输入捕获所使用,也可以被输出比较所使用。关于“拍照”的作用1、测脉宽:当我们想测量脉冲信号的脉宽时,我们可以同时把这个信号输入给通道1和通道2,让通道1去测量这个信号的上升沿,通道2去测量这个信号的下降沿。
2024-08-24 00:08:03
780
原创 STM32基础篇:定时器 × 时基单元
定时器是一种专门负责定时功能的片上外设。类型外设名称基本定时器TIM6和TIM7通用定时器TIM2~TIM5和TIM9~TIM14高级定时器TIM1和TIM8基本定时器是功能最简单的一类定时器,即时基单元的功能;通用定时器在基本定时器的基础上添加了一些功能,包括:输入捕获功能输出比较功能;高级定时器是在通用定时器的基础上又添加一些功能:从模式控制器输出控制功能。
2024-08-18 00:50:15
1925
原创 STM32外设篇:MPU6050
MPU6050是一个6轴姿态传感器,可以测量芯片自身X、Y、Z轴的加速度、角速度参数,通过数据融合可进一步得到姿态角(欧拉角),常应用于平衡小车、飞行器等需要检测自身姿态的场景。3轴加速度计3轴陀螺仪传感器3轴磁场传感器气压传感器6轴√√××9轴√√√×10轴√√√√3轴加速度计(Accelerometer):测量X、Y、Z轴的加速度。3轴陀螺仪传感器(Gyroscope):测量X、Y、Z轴的角速度。
2024-08-15 16:27:44
1869
原创 STM32外设篇:OLED显示器
OLED (Organic Light-Emitting Diode)即:有机发光二极管。尺寸0.96寸OLED显示屏(驱动芯片:SSD1306/SSD1315)1.3寸OLED显示屏(驱动芯片:SH1106)接口4针脚 I2C接口7针脚 SPI接口像素128*64像素颜色颜色不限对于其接口,如果购买的是OLED模块,而非裸屏模块是由一片真正的屏幕和一块PCB底板组成:PCB底板上就是一些最小系统电路,加底板的主要目的是方便我们插接电路;MCU通信接口负责接收我们发送的字节。
2024-08-13 23:00:09
1546
原创 STM32基础篇:I2C通信协议
在STM32内部有两个I2C模块(即I2C1、I2C2),挂在APB1总线上。每个I2C模块有三个引脚,分别为:SCL、SDA、SMBA;本文不涉及SMBA引脚的讲述。复用功能Remap=0Remap=1I2C1_SCLPB6PB8I2C1_SDAPB7PB9I2C1_SMBAPB5I2C2_SCLPB10I2C2_SDAPB11I2C2_SMBAPB12。
2024-08-08 23:01:52
1215
原创 STM32基础篇:RCC × 时钟
在STM32芯片内部,有很多片上外设,每个片上外设负责执行一定的功能。而片上外设本质是时序电路,让其工作必须提供时钟,且不同片上外设所需时钟频率不同。因此需要再STM32芯片内部去产生各种频率的时钟信号,并且最终把这些时钟信号分配给每一个片上外设。此功能通过时钟系统(时钟树)来完成,如下图所示:将时钟系统画成一棵树来表示,以大树为例:在树根的位置(HSL、HSE)是时钟的来源,然后通过一些复杂的电路对时钟进行一些运算(倍频、分频)和加工,得到三个不同的频率信号,分配给三路片上外设。
2024-08-05 10:50:09
1055
原创 STM32实战篇:使用USART发送/接收数据
在发送字符时也可以直接使用其对应的ASCLL码,例如: USART_SendData(USART1, 0x61);
2024-07-31 00:10:04
383
原创 STM32基础篇:USART(下)
对于数据帧来说,它具有起始位、数据位和停止位这三部分组成,如果我们在接收数据帧的过程中,接收方收到了起始位和数据位,但是没有收到停止位,我们就说发生了帧格式错误。串口用于传递各种各样的数据,在数据传递的过程中数据就有可能产生错误,在接收方收到数据之后,我们可以通过错误标志位来判断数据有没有错误。由于数据写入过快导致的数据丢失问题,即:当我们第一个数据正在移位寄存器中被发送、第二个数据在TDR中排队时,又写入第三个数据,此时。如果有数据在TDR里面等待被发送,此时读取到TXE的值为0,反之没有数据则为1。
2024-07-21 16:49:47
1165
原创 STM32基础篇:串口通信 × USART(上)
我们要想在两个设备之间去进行数据通信,就需要串口(Rx、Tx)将其连接起来。使用两根导线将通信双方的Tx和Rx引脚交叉连接即可实现双向的通信。在实际生活中,有时候还需要一些额外的接线,例如GND、VCC等,具体作用如上图所示。USART:从字母翻译上来看:通用(U) 同步/异步(S/A) 接收器/发送器(R/T),即通用同步/异步串行接收/发送器,是一个高度灵活的串行通信设备。UART:通用异步收发器,相比于USART,其区别为UATR没有同步模式。在STM32芯片内部中,
2024-07-19 18:46:54
719
原创 STM32基础篇:EXTI × 事件 × EXTI标准库
EXTI:译作外部中断/事件控制器,STM32的众多片上外设之一,能够检测外部输入信号的边沿变化并由此产生中断。例如,在检测按键时,按键按下时会使电平产生翻转,因此可以使用EXTI来读取按下时的边沿变化,从而给NVIC输出一个中断触发信号,通过中断响应函数实现想要的功能。
2024-07-12 10:31:40
1210
原创 STM32基础篇:中断编程 × NVIC ×
中断:正在进行的事务被突发事件打断,转而处理这个突发事件,突发事件处理完成后回到被打断的事务继续执行,这一处理突发事件的过程叫做中断。对于STM32,由于中断源的触发,常规程序被打断,CPU转而运行中断响应函数,而后又回到常规程序的执行,这一过程叫做中断。NVIC:译为"嵌套中断向量控制器",一种核心外设,位于Cortex-M3内核中,负责管理中断(例如:中断进入时保护现场、中断退出时还原现场、中断优先级的设置、中断仲裁等)
2024-07-10 16:30:49
1100
原创 STM32实战篇:按键控制LED
有两个按键,分别控制两个LED灯。当按键按下后,灯的亮暗状态改变。由图可知,按键一端直接接地,故另一端所对应IO引脚的输入模式应该为。
2024-07-09 22:33:55
666
原创 STM32基础篇:AFIO × 查表重映射 × AFIO库函数
AFIO,直译为:复用输入输出,是STM32上众多的片上外设之一;我们知道当IO引脚复用功能冲突时,可以通过重映射来解决这个问题,而AFIO就是专门用来执行"复用功能的重映射"的模块(可以看出其名字与功能并不一致)。
2024-07-09 17:09:39
1126
原创 STM32实战篇:闪灯 × 流水灯 × 蜂鸣器
来说,只有在外部时钟(即使能时钟)的激励下才能工作。对于STM32来说,其芯片内部片上外设基本为时序电路,因此要想片上外设工作,就得给片上外设提供时钟。只有当我们要用到某个片上外设时,才会由编程者去开启对应时钟,这样可以最大程度的省电。1、使能IO引脚端口的时钟。(以PC13为例,需要先使能GPIOC这个端口的时钟)即开展某项活动之前所做的准备工作,对于一个IO引脚来说,在使用它之前必须要做一些。2、选择模式和其他参数。(例如:选择工作模式、速率)的工作(即。默认情况下,片上外设的时钟都是关闭的。
2024-07-08 23:40:09
422
原创 STM32基础篇:GPIO
GPIO:即General Purpose Input/Output,通用目的输入/输出。就是一种片上外设(内部模块)。对于STM32的芯片来说,周围有一圈引脚,有时需要对引脚进行读写(读:从外部输入一个信号,连接到IO引脚上,我们去读取输入电平;写:通过IO引脚向外输出电平),但CPU本身不能直接读写IO引脚,它必须通过GPIO帮它去执行这个功能。每一组IO引脚对应一个GPIO,例如:PA0~15,对应GPIOA;PB0~15,对应GPIOB。
2024-07-07 15:45:59
1604
原创 STM32基础篇:引脚 × 复用 × 重映射
IO复用:指IO引脚身兼数职的现象。对于STM32芯片的一些引脚,其不仅能被GPIO模块直接控制(当做普通IO引脚使用),还能被其他模块使用。名称通用复用PA9普通IOPA10普通IO以PA9和PA10为例,除了被GOIO使用,用于输出或检测高低电平外,还可以被串口使用,当做串口的发送引脚或接收引脚来使用;也可以被定时使用,作为定时器的通道3和4来使用。
2024-07-07 11:12:53
1146
原创 初识STM32:寄存器编程 × 库函数编程 × 开发环境
但我们的标准库是一个比较古老的库,对于新版的Keil5软件来说,不支持标准库的编译,需要安装一个旧版的编译器,即ARMCC编译器,来让我们的标准库能够在Keil5软件上跑起来。其模块内部有寄存器组,包含两个寄存器:输入寄存器(IDR)和输出寄存器(ODR),均有16个比特位,对应GPIO所管理的16个引脚。想对芯片周围的这些模块进行编程(使用模块),就需要操作模块的寄存器组,直接去读写操作寄存器的代码,为。将操作寄存器的代码包装成一条条函数,在实际编程中,直接调用这些包装好的函数来控制寄存器。
2024-07-06 16:39:05
828
原创 初识STM32:芯片基本信息
STM32是ST公司基于ARM公司的Cortex-M内核开发的32位微控制器。ARM公司是全球领先的半导体知识产权(IP)提供商,全世界超过95%的智能手机和平板电脑都采用ARM架构。ST公司于1987年由意大利的SGS微电子与法国的Thomson半导体合并而来,ST由意大利和法国各取一个首字。ST:意法半导体,是一个公司名,即SOC厂商(系统级芯片厂商)M:MCU(Micro Control Unit)的缩写,表示微控制单元(单片机)。32:即32位寻址位宽(32个比特位表示一个地址)
2024-07-06 12:54:17
1226
原创 常用时序逻辑电路模块:计数器
计数是一种最简单基本的运算。计数器就是实现这种运算的逻辑电路,计数器在数字系统中主要是对脉冲的个数进行计数,以实现测量、计数和控制的功能,同时兼有分频功能。是数字系统中种类最多、应用最广的时序逻辑电路。计数器分类按时钟分类同步、异步按容量分类例如十进制、六十进制等计数增减分类加法、减法、可逆(加/减)按数字编码分类二进制、二-十进制、格雷码等。
2024-05-30 23:26:02
3407
空空如也
为什么同一个代码在不同芯片上的波形仿真不一样
2024-09-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人