IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> stm32cubemx:systick系统定时器中断与TIM定时器中断的配置及使用方法 -> 正文阅读

[嵌入式]stm32cubemx:systick系统定时器中断与TIM定时器中断的配置及使用方法

时钟作为单片机中十分重要的一环,没有时钟作为时间基准,我们对单片机进行编程也将变得混乱及难以把控时间度。接下来就看看怎么在stm32cubemx中查询我们自己设置的时钟吧。
首先选择RCC,然后可以看到有HSE与LSE的选项,分别为高速时钟和低速时钟,stm32单片机内部分别有1个低速时钟与1个高速时钟,外部也可以接1个外部低速时钟与1个外部高速时钟。当我们使用内部时钟时,将其选为Disable便可,当使用外部时钟时则选Crystal/Ceramic Resonator选项。
在这里插入图片描述
由于我使用内部高速时钟作为时间基准,所以高速时钟和低速时钟均选“Disable”便可。接下来让我们看一下整个MCU的时钟树:在这里插入图片描述
由图片我们可以知道现在系统时钟为8MHz,接下来就讲解一下怎么配置和使用systick定时溢出中断。

SYSTICK定时器溢出中断配置及使用:
在这里插入图片描述
接下来我们去NVIC中断设置中查看systick中断是否已经使能:
在这里插入图片描述
可以看到systick定时器中断已经默认打开且无法关断,其优先级为3(优先级数字越大其优先度越高);

然后我们再配置1个IO口输出点亮和熄灭LED灯,可供我们更加直观的看出定时器中断正在执行吧:
在这里插入图片描述
接下来就可以生成keil工程了:
在这里插入图片描述
在这里插入图片描述
点击右上角的GENERATE CODE生成即可去相应路径中打开工程了:
在这里插入图片描述

打开工程后我们找到stm32xxxx._hal.c这个文件打开,找到
if (HAL_SYSTICK_Config(SystemCoreClock / (1000U / uwTickFreq)) > 0U)
这段代码,如图:在这里插入图片描述
我们更改其中的1000U该值便可更改溢出中断的时间,其计算方法为
1秒/1000=1ms ,我将其更改为1秒/500=2ms;则每2ms将进入一次systick溢出中断,接下来我们在stm32xxxx_it.c中找到其中断服务函数
void SysTick_Handler(void):
在这里插入图片描述
其中我定义了一个累加值 uint16_t systime,当累加到1000的时候,即2秒,便执行1次翻转PA15电平的操作并清除计数值(该操作最好移至main函数中执行,中断中仅执行累加计数最好,本人为了方便自己所以偷懒了^~*)。接下来便编译程序,烧录程序,查看结果,将PA15连上LED后将看到其每隔两秒便亮or灭。

TIM普通定时器配置及使用:
回到stm32cubemx中,我们对该工程的时钟系统不做任何改变(即仍然使用内部8M高速时钟),对TIM3进行配置如下:
在这里插入图片描述
首先时钟还是8MHz,经过8分频后变成1MHz,即1微妙,然后累加值设置为500,则500微妙TIM3定时器将溢出执行一次中断,接下来我们先去使能TIM3溢出中断:
在这里插入图片描述

之后继续生成工程,回到工程之后找到TIM3中断服务函数,把之前在systick中断服务函数中的那部分执行程序剪切过来:
在这里插入图片描述
别急着烧录程序,这时候我们还没有打开TIM3中断定时器呢,回到main函数中,加入此程序
HAL_TIM_Base_Start_IT(&htim3);在这里插入图片描述
接下来便可以烧录程序查看结果了。可以看到LED灯将以500毫秒的时间频率进行闪烁,证明TIM3溢出中断功能已经实现。

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-11-05 00:42:58  更:2022-11-05 00:44:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 17:46:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码