- 博客(23)
- 收藏
- 关注
原创 按键状态机程序(单击、双击、长按),HAL库
本文实现了一个基于状态机的按键检测系统,能够处理按键消抖、单击、双击和长按事件。系统采用外部中断检测按键边沿变化,配合定时器中断进行消抖处理。通过定义按键状态枚举和事件枚举,构建了包含空闲、消抖、按下、等待双击等状态的状态机。提供了单按键和多按键两种实现方案,支持独立处理每个按键的事件。主要特点包括:20ms消抖时间、1000ms长按阈值、300ms双击间隔,通过结构体封装按键参数,实现了模块化的按键检测功能。
2025-12-02 09:04:37
257
原创 三级管原理及应用
本文用通俗的水龙头比喻解析三极管工作原理:将基极(B)比作阀门把手,发射极(E)和集电极(C)分别比作进、出水口。详细阐述三极管的三种状态:截止状态(阀门关闭)、放大状态(流量与把手转动成比例)和饱和状态(阀门全开)。以驱动蜂鸣器为例,说明如何计算基极电阻确保深度饱和,包括负载电流确定、电阻值计算和功耗验证。强调作为开关使用时,应提供2-10倍于Ic的基极电流,使Vce_sat降至0.1-0.2V,实现高效控制。
2025-11-17 15:17:03
677
原创 CUBEMAX中定时器、PWM、ADC相关周期计算
摘要:本文基于STM32F103C8T6芯片,分析了时钟树配置要点。定时器TIM1直接倍频至72MHz,TIM2/3/4通过二倍频达到72MHz;PWM以TIM1通道1为例,工作在72MHz时钟下;ADC1通道0则采用12MHz时钟频率。重点说明了各外设时钟源的配置方法及频率计算规则,为STM32外设开发提供了时钟配置参考。
2025-11-10 10:52:03
274
原创 STM32,串口环形缓冲区接收数据
摘要:本文实现了一个基于STM32的UART3通信模块,采用环形缓冲区处理串口数据接收。主要功能包括:使用128字节环形缓冲区管理接收数据;实现CRC校验功能确保数据传输可靠性;提供缓冲区操作接口(put/get/peek/count);在中断回调函数中自动填充缓冲区。
2025-11-08 09:22:08
299
原创 STM32串口接收与CAN互收发 HAL库
CAN波特率=APB总线频率/分频系数/(1+TBS1+TBS2)UART.C文件添加函数。1、CUBEMAX配置。CAN.C文件添加函数。MAIN.C文件函数。
2025-10-28 09:48:23
169
原创 STM32F103C8T6 CAN通信 HAL库
本文介绍了STM32F103C8T6的CAN总线配置与应用。通过CUBEMAX配置CAN模块,挂载在APB1总线(36MHz)上,详细说明了CAN初始化参数设置、过滤器配置(32位掩码模式)及中断处理。程序中实现了CAN数据收发功能,定义ID为0x1314的扩展帧数据帧,采用8字节数据长度。当接收到数据时,通过中断回调函数自动发送相同数据。最后使用cangaroo上位机进行测试,验证了CAN总线数据收发功能。测试结果表明,该系统能稳定实现CAN数据收发功能。
2025-08-30 09:51:02
803
原创 STM32F407VET6驱动DS18B20 HAL库
如果要自定义更换其他io引脚,需要修改两个地方,一个是DS18B20.C文件中的io方向函数,一个是DS18B20.H中的io操作函数,修改为自己使用的引脚即可。cubemx的基础配置不在进行介绍,不会的可以去看我前面的文章。之后在main函数的循环外判断是否接入传感器。文章仅为本人学习记录,可供参考。在main函数的循环内检测温度。3.实际温度检测效果。
2024-11-07 09:30:34
581
1
原创 STM32 修改PWM占空比和频率 HAL库
1.通过修改脉冲宽度修改占空比:(参数一配置的定时器,参数二为定时器通道,参数三为修改的脉冲宽度值)2.通过修改预分频系数修改PWM频率:(参数一配置的定时器,参数二为修改的预分频系数值)3.通过修改自动重载值修改PWM频率:(参数一配置的定时器,参数二为修改的自动重载值)配置CUBEMX生成PWM信号时,需设置好预分频系数、自动重载值和脉冲宽度。占空比:脉冲宽度/自动重载值%
2024-04-27 10:58:18
3058
原创 STM32F407VET6 多通道ADC采集+DMA HAL库
基础配置不懂的可以看之前的文章RCC使用外部高速时钟SYS配置ADC配置,使用ADC1的通道0、1、2,如图开启中断配置DMA配置串口打印信息。
2024-04-20 09:11:50
1960
3
原创 STM32F103C8T6 FLASH读写 HAL库
的flash按页擦除,分为64页,每页1kb大小本文我用的为扇区32,完整扇区可百度了解flash操作步骤一般为:1.解锁Flash2.擦除Flash编程3.写入Flash操作4.锁定Flash。
2024-04-17 15:12:45
1817
1
原创 STM32之CUBEMX及KEIL 5基础配置
本文章为了方便快速上手使用CUBEMX和KEIL 5,有很直观的操作步骤,毕竟先上手在慢慢拓展学习,先大概了解会用。
2024-04-17 13:56:03
1325
1
原创 STM32F407VET6 FLASH读写 HAL库
STM32F103C8T6的flash按页擦除,而STM32F407VET6的flash是按扇区擦除的。每次操作的步骤为:对flash解锁、擦除、写入、上锁。文章为新手个人记录学习。
2024-04-16 11:56:03
2257
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅