学习CubeIDE——定时器开发

在b站上学习洋桃电子关于HAL库开发,发现使用CubeIDE是真的简单又方便。

实验现象:使用定时器 来产生中断 ,中断程序是LED灯翻转

在我看来,定时器,是一个从0开始增1(常规),增加到一定值就产生中断。其中,有两个参数需要我们来设置,一个是这个"一定值",即重装值(Counter Period);一个是每次增1所用的时间,这个时间是由定时器时钟(Timer Clock)和定时器分频(Prescaler) 计算出来的。

1、ioc设置

首先,先用CubeIDE自带的CubeMX来设置XX.ioc。

(1)在"Pinout & Configuration"中点击Timers------>TIM2。

(2)选择时钟源内部时钟。打开"Clock Configuration"可以看到定时器时钟有两个,分别在APB1和APB2总线上。因为我们使用的TIM2 是通用定时器(看手册),所以定时器等于APB1时钟:PCLK1 = 8MHz。

|-------|---------------------------------------|----------|
| 类型 | 使用编号 | 总线 |
| 基本定时器 | TIM6 、TIM7 | APB1 |
| 通用定时器 | TIM2 、TIM3 TIM4 、TIM5 | APB1 |
| 高级定时器 | TIM1 、TIM8 | APB2 |
[定时器分类]

(3)设置分频系数,因为定时器时钟为8MHz,每秒振8KK次,次数太多了反而使每次振的时间特别短。所以我们将它分频,这里设置分频=9999。8kk / (9999+1) = 800。即一秒振800次。

(4)设置"一定值"=799。定时器从0计数到799,用时1s。计数完毕后产生中断。

2、程序

ios配置完毕后,可以在 main 函数里看到,TIM2_Init 初始化已经完成,并且生成句柄htim2。
句柄

(1)在初始化后面开启TIM时基单元。

(2)在main函数前写定时器中断函数。

没了。

相关推荐
m4Rk_20 分钟前
【论文阅读】Agent 记忆机制(91):THEANINE——不删除过时记忆,让 Agent 记住事情是如何变化的
论文阅读·人工智能·学习·开源·github
yuehuaxin0123 分钟前
LP20R100FN 同步整流|3C 认证适配器 CCM 工况倒灌、温升超标样机避坑解析
嵌入式硬件·智能家居·适配器模式·智能硬件
我命由我1234542 分钟前
Photoshop - Photoshop 面板和菜单
学习·职场和发展·产品运营·求职招聘·职场发展·产品经理·photoshop
国科安芯1 小时前
商业立方星平台中高集成度抗辐射MCU的功耗优化与批量化应用可行性探讨
单片机·嵌入式硬件·架构·risc-v·抗辐射·as32x601
一木 之林1 小时前
RAG开发学习总结:从 LangChain 入门到检索增强生成链路的全栈实战-4/6
人工智能·学习·计算机视觉·langchain
LHR_friendship1 小时前
HCIP课程全部内容
网络·笔记·学习·hcip·华为ensp
女神下凡1 小时前
芯参谋(40):UFS 电路设计指南
arm开发·单片机·嵌入式硬件·设计规范
海绵宝宝转agent1 小时前
Pico 学习笔记 Harness 设计、历史压缩、三类目录与缓存复用
笔记·学习·缓存
iCxhust2 小时前
CAN信号电平与485信号电平实测
单片机·can·通讯·rs485
我命由我123452 小时前
Photoshop - Photoshop 使用仿制图章工具移除对象
学习·职场和发展·产品运营·求职招聘·职场发展·产品经理·学习方法