- 博客(34)
- 收藏
- 关注
原创 C++引用与指针核心差异解析
摘要:复合类型包括引用和指针。引用(&)必须初始化且不可重新绑定,是对象的别名;指针()可重新赋值,支持多级间接访问。void指针能存储任意地址但无法直接操作对象。引用需与对象类型严格匹配,指针是独立对象,可存在指向指针的引用。关键区别在于引用是别名而指针是独立对象,引用不可变而指针可重新指向。
2025-07-18 08:48:55
267
原创 C++--初识输入输出
C++通过标准库提供输入输出机制,主要使用<iostream>库中的istream和ostream类型。标准库定义了四个IO对象:cin(标准输入)、cout(标准输出)、cerr(标准错误)和clog(程序日志)。输入输出运算符(>>和<<)分别用于从流读取数据和向流写入数据,这些运算符具有链式特性并返回流对象本身。使用时需注意标准库名称位于std命名空间,如std::cout。endl操纵符不仅换行还会刷新输出缓冲区。示例程序展示了如何用cin读取两个数字并用cout
2025-07-06 15:21:27
605
原创 STM32基础教程——硬件SPI
是一种同步串行通信接口规范,主要用于短距离通信,广泛应用于嵌入式系统中。它使一个主设备能够与一个或多个从设备进行通信。SPI使用四条主要信号线:MOSI(主机输出/从机输入)、MISO(主机输入/从机输出)、SCK(串行时钟)和SS/CS(从选/片选)来实现数据的双向传输。这种接口方式支持全双工通信,具有传输速率高、延迟低的优点,但相比其他一些接口协议,使用的信号线较多。SPI常用于连接传感器、存储器、ADC(模数转换器)等外围设备。
2025-05-07 23:23:35
2188
原创 STM32基础教程——软件SPI
是一种同步串行通信接口规范,主要用于短距离通信,广泛应用于嵌入式系统中。它使一个主设备能够与一个或多个从设备进行通信。SPI使用四条主要信号线:MOSI(主机输出/从机输入)、MISO(主机输入/从机输出)、SCK(串行时钟)和SS/CS(从选/片选)来实现数据的双向传输。这种接口方式支持全双工通信,具有传输速率高、延迟低的优点,但相比其他一些接口协议,使用的信号线较多。SPI常用于连接传感器、存储器、ADC(模数转换器)等外围设备。
2025-05-07 22:19:54
1507
原创 STM32基础教程——硬件I2C
是一种由飞利浦公司在1980年代开发的串行通信协议,主要用于在同一电路板上的短距离集成电路之间的通信。它以两线式接口著称,这两条线分别是SDA(数据线)和SCL(时钟线),允许通过这些线路在支持I2C协议的各种设备之间进行双向通信。I2C协议支持多主多从架构,使得多个设备可以通过共享的数据线和时钟线实现有效的通信。
2025-05-03 22:19:39
847
原创 STM32基础教程——软件I2C
是一种由飞利浦公司在1980年代开发的串行通信协议,主要用于在同一电路板上的短距离集成电路之间的通信。它以两线式接口著称,这两条线分别是SDA(数据线)和SCL(时钟线),允许通过这些线路在支持I2C协议的各种设备之间进行双向通信。I2C协议支持多主多从架构,使得多个设备可以通过共享的数据线和时钟线实现有效的通信。
2025-05-03 19:45:43
1044
原创 STM32基础教程——HEX数据包接收
串口,是一种应用范围十分广泛的通信接口,串口的成本较低,容易使用,通信线路简单,可以实现两个设备之间的通信。单片机的串口可以实现单片机与单片机,单片机与电脑,单片机与其他设备的通信,极大地扩展了单片机的应用范围,增强了单片机的硬件实力。USART即通用同步/异步收发器,USART是STM32内部集成的硬件外设,可根据数据寄存器的一个字节数据自动生成数据帧时序,从TX引脚发送出去,也可自动接收RX引脚的数据帧时序,拼接为一个字节数据,存放在数据寄存器里。USART的部分主要特性全双工,异步通信。
2025-04-20 16:44:37
877
原创 STM32基础教程——DMA+ADC多通道
DMA用来提供在外设和存储器 之间或者存储器和存储器之间的高速数据传输。无需CPU干预,数据可以通过DMA快速地移动,这样可以节省CPU的资源进行其他操作。两个DMA控制器有12个通道(DMA1有7个通道,DMA2有5个通道),每个通道专门用来管理来自与一个或多个外设对存储器访问的请求。还有一个仲裁器来协调各个DMA请求的优先权。模拟-数字转换器,ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁.12位ADC是一种模拟数字转换器。
2025-04-16 20:25:47
2023
原创 STM32基础教程——DMA
DMA用来提供在外设和存储器 之间或者存储器和存储器之间的高速数据传输。无需CPU干预,数据可以通过DMA快速地移动,这样可以节省CPU的资源进行其他操作。两个DMA控制器有12个通道(DMA1有7个通道,DMA2有5个通道),每个通道专门用来管理来自与一个或多个外设对存储器访问的请求。还有一个仲裁器来协调各个DMA请求的优先权。
2025-04-16 16:18:03
1623
原创 STM32基础教程——ADC多通道
模拟-数字转换器,ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁.12位ADC是一种逐次逼近型模拟数字转换器。它有多达18个通道,可测量16个外部和两个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐对齐方式存储在16位数据寄存器中。初始化逐次逼近寄存器(SAR)将最高有效位(MSB)设为1,其余位设为0,形成一个初始猜测值。该值通过内部DAC(数模转换器)转换为模拟电压,并与输入信号进行比较。
2025-04-15 14:27:14
2165
原创 STM32基础教程——AD单通道
ADC模拟-数字转换器,ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁.12位ADC是一种模拟数字转换器。它有多达18个通道,可测量16个外部和两个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐对齐方式存储在16位数据寄存器中。ADC的输入时钟不得超过14MHz,它是由PCLK2经分频产生。ADC主要特征:● 12位分辨率● 转换结束、注入转换结束和发生模拟看门狗事件时产生中断。
2025-04-14 22:51:57
1094
2
原创 STM32基础教程——旋转编码器测速
用来测量位置、速度、和旋转方向的装置,当其旋转轴旋转时,其输出端可以输出与旋转速度和方向对应的方波信号,读取方波信号的频率和相位信息计科得知旋转轴的速度与方向。类型:机械触点式/霍尔传感器式/光栅式A,B两相都输出方波,顺时针方向旋转时,A相超前B相90度;逆时针方向旋转,B相超前A相90度。
2025-03-28 22:38:20
1875
原创 STM32基础教程——PWMI模式测量占空比
输入捕获, 输入捕获模式下,当通道输入引脚出现指定电平跳变时,当前CNT的值将被锁存到CCR中,可用于测量PWM波形的频率、占空比、脉冲间隔、电平持续时间等参数,每个高级定时器和通用定时器都拥有4个输入捕获通道,可配置为PWMI模式,同时测量频率和占空比,可配合主从触发模式,实现硬件全自动测量。
2025-03-27 17:09:58
1288
原创 STM32基础教程——输入捕获模式测量PWM频率
输入捕获,输入捕获模式下,当通道输入引脚出现指定电平跳变时,当前CNT的值将被锁存到CCR中,可用于测量PWM波形的频率、占空比、脉冲间隔、电平持续时间等参数,每个高级定时器和通用定时器都拥有4个输入捕获通道,可配置为PWMI模式,同时测量频率和占空比,可配合主从触发模式,实现硬件全自动测量。
2025-03-27 16:38:46
2455
原创 STM32基础教程——直流电机
是一种能够将直流电能与机械能相互转换的旋转电机,主要分为直流电动机(将电能转为机械能)和直流发电机(将机械能转为电能)。其核心结构包括定子(静止部分,含主磁极和换向极,产生磁场)和转子(旋转部分,又称电枢,通过电磁感应产生转矩)。工作原理基于电磁感应定律:通电导体在磁场中受力旋转(遵循弗莱明左手定则),而换向器与电刷的配合确保电流方向周期性变化,使转子持续旋转。
2025-03-27 14:29:17
2694
原创 STM32基础教程——PWM驱动舵机
舵机(Servo)是一种位置(角度)伺服驱动器,由电机、减速齿轮组、控制电路和位置传感器(如电位器或编码器)组成,通过闭环控制精确调节输出轴的角度或速度。它接收脉宽调制(PWM)等信号,驱动电机旋转并经齿轮组减速增矩后输出目标角度,同时传感器实时反馈位置信息以校正误差,确保稳定定位。
2025-03-26 22:43:00
6077
4
原创 STM32基础教程——PWM驱动LED呼吸灯
PWM(一种通过调节脉冲信号的占空比(高电平持续时间与整个周期的比值)来控制输出功率或模拟信号的技术。它广泛应用于电机控制、LED亮度调节、音频信号生成以及电源管理等领域。通过改变占空比,PWM可以在保持频率不变的情况下精确地控制设备的能量输入或输出,同时具有高效、易于实现和低功耗的优点。PWM参数频率= 1 / TS占空比= TON/ TS分辨率占空比变化步距。
2025-03-23 23:30:08
2558
原创 STM32基础教程——定时器外部中断
STM32的TIM定时器是一种功能强大的外设模块,通过(包含预分频器、计数器和自动重载寄存器)实现精准定时和计数功能。(CK_INT)或经分频后驱动,当达到(ARR)设定的值时触发更新事件,可产生或,并自动重置计数器重新开始计数。分为(TIM2-5)和支持PWM生成、死区控制、刹车保护等复杂功能;支持输入捕获、输出比较及编码器接口;仅提供基础定时中断。
2025-03-22 19:53:56
962
原创 STM32基础教程——定时器
STM32的TIM定时器是一种功能强大的外设模块,通过(包含预分频器、计数器和自动重载寄存器)实现精准定时和计数功能。(CK_INT)或经分频后驱动,当达到(ARR)设定的值时触发更新事件,可产生或,并自动重置计数器重新开始计数。分为(TIM2-5)和支持PWM生成、死区控制、刹车保护等复杂功能;支持输入捕获、输出比较及编码器接口;仅提供基础定时中断。
2025-03-22 18:17:37
3004
原创 STM32基础教程--旋转编码器计数实验
用来测量位置、速度、和旋转方向的装置,当其旋转轴旋转时,其输出端可以输出与旋转速度和方向对应的方波信号,读取方波信号的频率和相位信息计科得知旋转轴的速度与方向。类型:机械触点式/霍尔传感器式/光栅式。
2025-03-10 21:58:57
1749
原创 STM32基础教程——对射式红外传感器计数实验
EXTI_Init()用于初始化指定的EXTI外设,参数接受一个指向EXTI_InitTypeDef结构体的指针,该结构体有关于指定外部中断线引脚,外部中断线新状态, 中断触发模式,以及触发信号活动边沿。:当主程序中,出现了特定的中断触发条件(中断源),使得CPU暂停当前正在运行的程序,转而去处理中断程序,处理完成后又返回原来被暂停的位置继续执行。当一个中断程序正在运行时,又有新的更高优先级的中断源申请中断,CPU会再次暂停当前中断程序,转而去处理新的中断程序,处理完成后一次进行返回。
2025-03-09 23:19:57
2545
原创 STM32基础教程 ——OLED显示
OLED():有机发光二极管OLED显示屏:性能优异的新型显示屏,具有功耗低、相应速度快、宽视角、轻薄柔韧等特点0.96寸OLED模块:小巧玲珑、占用接口少、简单易用,是电子设计中非常常见的显示屏模块供电:3~5.5V,通信协议:I2C(4引脚OLED)/SPI(7引脚OLED),分辨率:128*64示意图:4引脚OLED7引脚OLED。
2025-02-24 21:37:01
2579
原创 STM32基础教程——光敏电阻控制蜂鸣器
1.实验名称:光敏电阻控制蜂鸣器2.实验环境:STM32F103C8T6最小系统板3.实验内容:通过读取光敏电阻的数字量控制蜂鸣器开关4.作者;abai5.实验时间:2025-2-18 实验要点1.链接光敏电阻模块时,只连接了VCC,GND和OD,并未连接OA。本实验时通过读取光敏电阻模块的数字输出端口来控制蜂鸣器的开关,未使用到其输出的模拟量。通过一个运放电路做电压比较器,利用光敏电阻的特性输出高低电平。无
2025-02-18 23:56:57
749
原创 STM32基础教程——按键控制LED
main.c#include "Delay.h" //延时函数#include "LED.h" //LED模块函数LED_Init();Key_Init();while(1)LED.h#endifLED.c/*** @brief 设置高速总线APB2外围时钟* 初始化GPIO* 将LED置为熄灭状态*//*高速总线外围时钟设置*//*配置端口*///定义结构体//选择PA1和PA2引脚//推挽输出/*
2025-02-18 23:16:27
1105
原创 STM32基础教程--LED和蜂鸣器实验
1.实验名称:LED和蜂鸣器实验2.实验环境:STM32F103C8T63.实验内容:LED闪烁实验,LED流水灯实验,蜂鸣器开关控制实验。
2025-02-17 22:16:03
1128
原创 STM32基础教程--创建一个STM32工程(基于STM32F103C8T6)
STM32是由意法半导体(STMicroelectronics)推出的基于ARM Cortex-M内核的32位微控制器系列。该系列微控制器具有高性能、低功耗、低成本等特点,集成了丰富的外设接口,如通用输入输出端口(GPIO)、串行通信接口(USART、SPI、I2C)、模数转换器(ADC)等。STM32广泛应用于工业控制、消费电子、汽车电子、医疗设备、智能家居等嵌入式系统领域。
2025-02-15 00:15:03
3671
原创 蓝桥杯单片机——基于PCF8951芯片的A/D和D/A转换实验
1.在读取PCF8951的模拟电压值时,使用I2C通信,在接收数据完毕后发送应答信号,应发送非应答位即将SDA置1。在编程过程中错误地发送了应答位。SDA为低电平,应答位,0=不存在或忙或写入失败。SDA为高电平,非应答位,1=存在且空闲或写入成功2.涉及到全局变量,普遍将其放在所有函数之外。在编程时错误地将其放在主函数内,且未将static关键字3.在数据分位时,看清楚设置的判定条件的范围,按位赋值时注意充当输入缓冲区的数组的索引实验现象PCF951pcf951。
2025-02-12 21:46:24
1370
原创 蓝桥杯51单片机——EEPROM存储开机次数
1.实验名称:EEPROM存储开机次数2.实验环境:IAP15F2K61S2国信长天实验板3.实验配置:J13跳线配置为I/O模式,J5配置为BTN模式,J2配置为11-3,2-4模式,J6配置为蜂鸣器电源4.实验时间:2025-1-225.实验内容:将单片机开机次数 存储在AT24C02(EEPROM)中,涉及到IIC通信协议,IIC通信 有严格的时序要求,在实验中应注意。
2025-02-08 17:36:11
1462
原创 蓝桥杯单片机——串口
1.实验名称:串口通讯实验2.实验环境:IAP15F2K61S2国信长天实验板3.实验配置:J13跳线配置为I/O模式,J5配置为BTN模式,J2配置为11-3,2-4模式,J6配置为蜂鸣器电源4.实验时间:2025-1-225.实验内容:PC与MCU进行串口通信,分别进行MCU向PC 循环发送内容和MUC与PC之间的收发实验。
2025-02-05 20:09:43
3745
原创 蓝桥杯单片机————基于状态机按键扫描
实验名称:基于状态机的按键扫描器实验环境:IAP15F2K61S2国信长天实验板实验配置:J3跳线配置为I/O模式,J5配置为BTN模式,J3配置为1-1,2-4模式备注:实验过程中蜂鸣器应处于关闭状态。
2025-01-28 22:07:22
1364
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅