网站首页
手机版

STM32单片机从零开始使用教程(九) TIM定时器中断

更新时间:作者:小小条

软件内部的计时总是不准的

比如说我们想每0.01s执行一次某个操作,代码中是

STM32单片机从零开始使用教程(九) TIM定时器中断

{

//执行的操作

}

Delay(10)

实际上每个周期的时长应该是10ms+操作花费时长

如果这是个很复杂的操作,那影响就很大了。

想更精确的控制在10ms,那就需要定时器中断

Cube的设置

在cube中打开TIM1,使用内部时钟源


还是来看一下架构图

TIM1挂载在APB2上,在cube中我们也可以在时钟树看的它的频率


现在我们知道它是16MHz了,如果想让他每10ms触发一次,可以设置分频系数1600,然后计数周期100,有 16000000 / 1600 / 100 = 100Hz,即10ms(当然由于是从0开始计数,所以这里我们都要给它-1)


开启中断


程序的编写

写了这么多程序其实大家应该已经熟悉套路了,无非就是while前做一下初始化,打开中断,然后重写一下回调函数


我们依然是在while前打开中断


然后重写我们的回调函数,烧录就可以在串口助手上看到不断发来的“TIM interrupt”


可以把之前调用单通道ADC的程序拿过来,这就变成了通过定时器中断实现较为准确的100Hz采样了。当然我们也可以和之前的DMA读取结合起来等等,都可以。


当然实际中我们这样采用中断触发ADC是绕远了,STM32f10x系列单片机是支持内部ADC接受定时器中断的,可以更直接的使用定时中断使其采样。

版权声明:本文转载于今日头条,版权归作者所有,如果侵权,请联系本站编辑删除

为您推荐

国产GD32F303替代STM32103完美教程

【看完就懂】GD32替代STM32全过程记录读完这一篇文章,你能获得的知识点:GD32与STM32基本区别 STM32CubeMX程序修改后如何下载到GD32 GD32移植后一些外设的测试一、前言最近半

2026-01-24 17:05

STM32 嵌入式C语言教程第六课从开拓者学习板打印hello world

由于疫情的原因有段时间都没有更新自媒体了,今天将和大家介绍一下如何从硬件仿真串口打印hello world,那我们使用的工程还是第二课用过的那个工程,只不过我们要修改一下它的输

2026-01-24 17:05

STM32单片机从零开始使用教程(三) 阻塞模式串口的简单应用

之前跑马灯的时候已经生成过了一次keil工程,不过只是简单地编译下载,这次来仔细看一下工程中都有什么。顺便体验一下快捷的串口设置。与之前类似,这次需要配置一下串口 模式就

2026-01-24 17:04

STM32CubeMX系列之GPIO教程

教程目标使用 STM32CubeMX 配置 STM32F407ZGT6 的 GPIO 引脚为输入和输出模式。实现 LED 闪烁程序。通过按键控制 LED 的开关状态。使用 STM32CubeIDE 编写和调试代码。准备

2026-01-24 17:04

STM32单片机从零开始使用教程(二) 使用Cube搭建跑马灯工程并下载

通过cube建立工程 RCC设置为外部晶振 高速晶振对应的引脚会亮起 进入clock configuration进行时钟配置,输入频率8M盒子PLL Source Mu改为使用外部时钟HSE,系统时钟System Clo

2026-01-24 17:03

傻瓜式教程:如何使用多合一开发工具STM32CubeIDE

工欲善其事,必先利其器。STM32Cube生态系统是ST为STM32开发者打造的软件生态,是嵌入式开发的利器。为提升功能丰富且高能效的STM32系列微控制器的易用性,2019年,意法半导体在STM

2026-01-24 17:03