- 博客(41)
- 收藏
- 关注
原创 32HAL——万年历
摘要:本设计基于STM32F103VET6实现了一个带时间设置功能的电子时钟系统,主要包含RTC实时时钟、旋转编码器和OLED显示模块。系统通过旋转编码器实现时间参数的调整,按键切换显示/设置模式,OLED显示当前时间及设置光标。采用函数指针机制实现编码器操作的异步回调,包括正转/反转及按键事件处理。初始化时检测RTC标志位防止重复初始化,设置模式可逐项调整年、月、日、时、分、秒参数,并带有光标闪烁提示。硬件配置包括外部32.768kHz晶振、I2C接口OLED和TIM编码器接口。
2025-11-09 22:16:35
735
原创 32HAL——RTC时钟
摘要:本文介绍了STM32中RTC(实时时钟)的实现方法。RTC通过32.768kHz低速时钟运行,具备断电持续运行能力。文章详细讲解了RTC原理、CubeMX配置及自定义RTC库的实现,包括初始化模式管理、时间读写函数等。特别解决了多次复位导致时间偏差的问题,通过备份寄存器实现首次初始化标记。最后展示了OLED显示RTC时间的示例程序,确保时间数据在断电情况下不丢失。该方案提供了精确的实时时钟功能,适用于需要持续计时应用场景。
2025-11-08 13:15:56
861
原创 32HAL——ADC模数转换&&多通道功能
摘要:本文介绍了STM32 ADC数模转换的配置与使用方法。针对单通道模式,详细说明了校准函数HAL_ADCEx_Calibration_Start()的使用方法、ContinuousConversionMode的配置要点以及电压测量实现代码。在多通道应用中,重点介绍了ScanConversionMode的配置、采样周期设置以及DMA传输的实现方法,包含温度传感器和基准电压通道的读取处理。文中提供了完整的示例代码,展示了如何通过OLED显示转换结果,并强调ADC通道频率不宜设置过快,特别是内部参考电压测量需
2025-11-07 23:46:44
1283
原创 32HAL——舵机&DRV8833驱动电机
本文介绍了基于STM32的舵机(SG90)和电机控制方法。对于舵机控制,采用50Hz PWM信号,通过旋转编码器调节占空比(2.5%-12.5%)实现0-180°角度控制,使用TIM4通道3输出PWM。电机控制部分通过编码器实现正反转及速度调节,采用DRV8833驱动芯片,速度与编码器计数值成比例变化。两个示例均包含OLED显示模块,实时反馈控制参数,并提供了完整的CubeMX配置和主程序框架,适用于嵌入式控制系统开发。
2025-11-02 22:26:53
1103
原创 32HAL——定时器总篇
本文介绍了STM32定时器的多种应用场景和相关配置方法:1. 基本定时器实现1秒周期中断,通过串口发送特定数据;2. 循迹模块(TCRT5000)通过外部中断计数电平变化,结合定时器计算速度;3. 定时器从模式(复位/门控/触发)的工作原理及配置方式;4. 输入捕获模式实现超声波测距(HC-SR04),通过捕捉上升沿和下降沿计算距离;5. PWM基础应用实现呼吸灯效果;6. 编码器模式用于旋转位置检测和LED亮度调节。各示例均包含CubeMX配置要点和关键代码实现,涵盖了定时器在嵌入式系统中的典型应用场景。
2025-11-01 20:25:00
896
原创 32HAL——OLED屏幕
CubeMx配置为高速模式时,需注意代码移植问题。显示浮点数需先用sprintf转换为字符串,再调用显示函数。关键是在CMakeLists.txt中添加target_link_options以启用浮点数支持:target_link_options(${PROJECT_NAME} PRIVATE -u_printf_float)。这段配置确保浮点数的正确打印功能。
2025-10-19 16:51:29
236
原创 32HAL——IIC温度传感器AHT20
本文介绍了基于CubeMx的两种温湿度传感器数据采集实现方案:1)轮询模式,包括配置方法和初始化及读取函数编写;2)中断+DMA+状态机模式,重点说明其配置要点。文中引用了"波特律动"的部分配置截图作为学习参考。两种方案均提供了相关代码实现,展示了不同技术路径下的传感器数据采集方法。
2025-10-19 16:42:48
177
原创 32HAL——蓝牙BT24模块
摘要:本文介绍了如何使用CubeMX配置串口的DMA模式,包括数据包结构设计(包头、长度、数据、校验和)。相关参考资料来自"波特律动",仅用于学习目的。配置过程涉及DMA模式设置和串口参数调整,适用于嵌入式系统开发中的高效数据传输场景。
2025-10-19 16:17:08
311
原创 32HAL——串口
本文介绍了STM32串口通信的三种实现方式:轮询模式(代码简单但会阻塞程序)、中断模式(需开启接收中断并回调处理)、DMA模式(需配置DMA通道并管理传输中断)。三种模式均通过CubeMX配置实现,其中中断和DMA模式需注意中断处理的特殊要求。文章还提及了串口相关函数的使用注意事项,部分内容参考自"波特律动"的学习资料。
2025-10-19 15:59:28
373
原创 32HAL——外部中断
摘要:本文介绍了使用CubeMX配置STM32的按键中断功能,将PE13引脚设置为EXTI13并配置为下降沿触发(模拟按键按下)。配置完成后需在NVIC中使能中断,并通过回调函数处理中断任务。文中部分内容参考自"波特律动",仅供学习使用。该方法简化了中断配置流程,便于快速实现按键中断功能开发。
2025-10-19 15:35:21
285
原创 32HAL——按键扫描
摘要:本文介绍了使用CubeMX配置GPIO引脚为输入模式(上拉输入)的方法,默认状态下该引脚保持高电平。文中提到部分截图来源于“波特律动”平台,仅供学习参考。内容主要涉及硬件配置和相关代码实现,适用于嵌入式开发初学者。(49字)
2025-10-19 15:26:56
202
原创 32HAL——点亮第一颗LED
本文介绍了推挽输出与开漏输出的区别,详细说明了在CubeMX中配置GPIO为推挽输出模式的步骤:首先将引脚设置为GPIO_Output模式,然后选择OutputPushPull作为输出类型,并配置为低电平点亮。文中还提到相关代码实例,部分内容参考自"波特律动"用于学习目的。
2025-10-19 15:19:39
119
原创 51——软件IIC点亮0.96oled
IIC和OLED核心代码实现摘要:本文介绍了IIC通信协议的核心功能实现代码(iic.h),包括起始/终止信号、应答处理和字节传输。同时详细说明了OLED显示模块的核心功能(oled.h),涵盖指令/数据写入、初始化、清屏、光标定位等基础操作。提供了完整的显示函数实现和演示代码,通过实验验证了IIC驱动OLED显示屏的功能实现效果,展示了字符显示等基本功能的工作现象。
2025-10-17 00:12:26
277
原创 PCB学习——STM32F103VET6-STM32接口部分
该文章介绍了单片机系统的多种电路设计,包括:1)USB通信电路需上拉;2)ADC/DAC转换电路;3)按键电路;4)串口自动下载电路,详细说明了CH340C芯片电平转换和S8050/S8550三极管控制RST、BOOT0引脚的电平变化过程,实现自动复位和启动模式切换;5)LED指示电路;6)SPI接口;7)I2C接口;8)串口/I2C复用接口;9)SWD调试接口;10)整体电路集成方案。重点阐述了串口下载时通过控制信号实现单片机自动复位和启动模式切换的工作机制。
2025-10-03 20:43:51
672
原创 PCB学习——STM32F103VET6-STM32主控部分
单片机刚上电时,电容视为短路,则RST一段时间内为低电平,完成复位。通过配置BOOT0和BOOT1高低电平,来选择启动模式。按键按下时,RST直接接地,完成复位。VKA = Vref时的参考电路。低电平维持一定时间完成复位。4. 启动模式选择电路。输出基准电压2.5V。
2025-10-03 00:10:39
702
原创 PCB学习——STM32F103VET6电源部分
隔离目的主要是防止数字电路对模拟电路产生影响造成模拟信号失真,这里采取单点接地原理隔离。将DCDC输出的5v与typec输入的5v合并为一路。1. DCDC12v转5v电路。4. LDO 5v转3.3v。输入电压:5.5v-36v。输出电压:低至1.22v。2. typec输入电路。6. 整体电源电路原理图。使用AMS1117芯片。5. 模数地隔离电路。
2025-10-02 22:12:23
412
原创 PCB学习——STM32F103VET6-STM32命名规则,电源电路相关
基本工作原理:若V+小于Vref,运算放大器输出低电平,三极管基极电压降低,阻值变小,则Vout变大;当V+大于Vref时,运算放大器输出高电平,三极管基极电压升高,阻值变大,则Vout变小。工作原理:当MOS关断时L放电,因为电感内部有一个与电流方向相反,阻止电流减小的电压,所以输出电压等于电感电压加上电源电压,表现出升压的效果。PNP三极管:可看作滑动变阻器,由基极电压控制阻值,当基极电压电压降低时,阻值减小,反之增大。时钟电路,复位电路,电源电路。1. STM32命名规则。
2025-10-02 21:54:30
585
原创 51——DS18B20
5. 单总线发送一个字节(低位在前)6. 单总线接收一个字节(低位在前)7. DS18B20温度变换。8. DS18B20温度读取。//按键驱动 在中断中调用。3. 单总线发送一位。4. 单总线接收一位。9. 定时器扫描按键。//获取当前按键状态。
2025-10-02 21:12:46
369
原创 51——DS1302
ds1302是具有涓细电流充电能力的低功耗实时时钟芯片.//选择模式->显示时间/设置时间。外接32.768khz石英晶振。4. 读取一个寄存器的一个字节。3. 指定寄存器写入一个字节。5. 实时时钟时间写入与读取。//BCD码转十进制。//选择设置某个时间。2. DS1302初始化。1. DS1302介绍。
2025-10-01 16:35:19
649
原创 51——红外遥控
用外部中断接收遥控发出的红外信号,之后解码用定时器检测高/低电平时间,判断是起始,数据还是重复信号,用状态机检测目前状态。//验证接收是否正确。通信方式:NEC标准(单工,异步)红外LED波长:940mm。2)获取数据/重复标志位。5. 外部中断示例代码。6. 定时器示例代码。
2025-10-01 15:47:37
759
原创 51——iic_eeprom
简述了iic的起始,终止,应答,非应答,等待应答,发送/接收一个字节的信号时序。eeprom写/读取一个字节的信号时序。
2025-09-24 21:45:06
431
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅