自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 按键状态机程序(单击、双击、长按),HAL库

本文实现了一个基于状态机的按键检测系统,能够处理按键消抖、单击、双击和长按事件。系统采用外部中断检测按键边沿变化,配合定时器中断进行消抖处理。通过定义按键状态枚举和事件枚举,构建了包含空闲、消抖、按下、等待双击等状态的状态机。提供了单按键和多按键两种实现方案,支持独立处理每个按键的事件。主要特点包括:20ms消抖时间、1000ms长按阈值、300ms双击间隔,通过结构体封装按键参数,实现了模块化的按键检测功能。

2025-12-02 09:04:37 257

原创 嘉立创EDA教育与开源文档中心

嘉立创EDA教育与开源文档中心。

2025-11-21 15:06:09 451

原创 三级管原理及应用

本文用通俗的水龙头比喻解析三极管工作原理:将基极(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,级联驱动74HC165D,HAL库

2、CUBEMAX配置。

2025-11-10 08:18:40 136

原创 STM32,驱动级联MS31860T,HAL库

1、原理图2、CUBEMAX配置SPI通讯速率不能过快,可能会导致芯片通信失败3、代码部分。

2025-11-08 11:02:58 120

原创 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

原创 STM32F407VET6的PWM中断使用

1.CUBEMX配置。

2024-05-30 08:39:07 856

原创 STM32F103C8T6外部中断使用

1.CUBEMX配置。

2024-05-29 11:58:38 624

原创 STM32F103C8T6定时器中断使用

main函数开启定时器。1.CUBEMX配置。

2024-05-21 09:59:18 762

原创 STM32F407VET6多通道采集ADC,非DMA方法HAL库

ADC可以正常采集并且更新。1.CUBEMX配置。

2024-05-20 09:41:29 863

原创 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

原创 STM32F407VET6 ADC单通道采集 HAL库

主要配置ADC,以及串口打印显示:到此CUBEMX就配置好了,生成KEIL工程即可。

2024-04-18 08:19:37 795 1

原创 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

原创 STM32F103C8T6点亮TM1650 HAL库

TM1650使用两个IO口,模拟IIC输出,通讯时序可看手册了解。

2024-04-17 09:00:51 2748 3

原创 STM32串口中断接收 HAL库

CUBEMX配置串口。

2024-04-16 16:46:48 797

原创 STM32串口重定向、微秒延时、校验码计算HAL库

【代码】串口重定向、微秒延时、校验码计算。

2024-04-16 16:01:04 409

原创 STM32F407VET6 FLASH读写 HAL库

STM32F103C8T6的flash按页擦除,而STM32F407VET6的flash是按扇区擦除的。每次操作的步骤为:对flash解锁、擦除、写入、上锁。文章为新手个人记录学习。

2024-04-16 11:56:03 2257

UartAssist串口调试工具.zip

UartAssist串口调试工具.zip

2025-10-28

STM32 ST-LINK Utility程序烧录工具

STM32 ST-LINK Utility程序烧录工具

2025-10-28

CAN通信上位机调试工具

CAN通信上位机调试工具

2025-10-28

STC-ISP下载工具

STC-ISP下载工具

2025-10-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除