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

2023-05-16

时钟作为单片机中十分重要的一环,没有时钟作为时间基准,我们对单片机进行编程也将变得混乱及难以把控时间度。接下来就看看怎么在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溢出中断功能已经实现。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

stm32cubemx:systick系统定时器中断与TIM定时器中断的配置及使用方法 的相关文章

  • Win10安装Ubuntu18.04双系统,图文详解,全网最详细教程

    博主经历过多次双系统的安装与卸载 xff0c 所以这次安装就记录下全过程 xff0c 能让后面的同学少走弯路 本教程对笔记本电脑单硬盘和双硬盘通用 安装目录 一 查看电脑信息1 BIOS模式2 查看硬盘数 二 制作系统盘1 下载镜像源2 制
  • Ubuntu18.04安装Ceres,图文详解

    视觉SLAM14讲 的第6章里面 xff0c 用到了Ceres库 xff0c 按照本书3rdparty提供的资源编译时 xff0c 会报错 xff0c 原因是和eigen3版本发生冲突 网上很多解决方法是重装eigen xff0c 尝试后也
  • Ubuntu20.04部署yolov5目标检测算法,无人车/无人机应用

    在FireFly RK3588开发板上烧录了Ubuntu20 04系统 xff0c 在此基础上线部署下简单的Python版本yolov5代码 xff0c 目前博主已全部转为C 43 43 版本了 xff0c 并且转化了pt模型为rknn模型
  • ubuntu查看cpu使用率

    rk3588上安装的ubuntu系统 xff0c 规格书上是8核CPU xff0c 希望跑算法时使用4核来跑 xff0c 所以需要查看cpu的使用情况 输入gnome system monitor xff0c 开启进程界面 xff1a 点击
  • 【视觉SLAM】MonoRec: Semi-Supervised Dense Reconstruction in Dynamic Environments from a Single Moving C

    Citations xff1a F Wimbauer N Yang L von Stumberg et al MonoRec Semi Supervised Dense Reconstruction in Dynamic Environme
  • Win10蓝屏问题:SYSTEM_THREAD_EXCEPTION_NOT_HANDLED

    最近一段时间 xff0c 我一直出现蓝屏的情况 xff0c 以为是 span class token constant CPU span 散热不行导致的重启 xff0c 因为比较频繁所以在此记录解决这个问题 xff0c 还是一贯的风格 xf
  • Android Studio实现文件管理器

    项目目录 一 项目概述二 开发环境三 详细设计1 布局设计2 程序运行时申请权限3 查看文件4 删除文件5 搜索文件6 新建文件 四 运行演示 一 项目概述 本次带来的文件管理器 xff0c 能够对SD卡的目录进行管理 主要功能包括新建文件
  • Failed to install the following Android SDK packages as some licences have not been accepted. bu

    报错信息 Android 开发者工具 Android开发者构建工具28 0 3 Android开发者平台28的协议都没有被接受 Failed to install the following Android SDK packages as
  • Jetson TX1 介绍

    前因 Jetson TX1 核心模块目前已经停产 xff0c 但是我们发现市面上有很多二手模块可以很容易获取 xff0c 同时 xff0c 英伟达对于Jetson TX1 的所有软件支持依然集成在了SDK manager中 xff0c 在最
  • Received status code 400 from server: Bad Request

    一 报错信息 FAILURE span class token operator span span class token class name Build span failed span class token keyword wit
  • Oracle VirtualBox虚拟机安装

    1 到官网下载虚拟机安装包 xff08 https www virtualbox org wiki Downloads xff09 2 下载后的样子 3 选择安装路径 4 选择要安装的功能 5 安装 6 安装完成
  • VirtualBox虚拟机安装Red Hat Enterprise Linux7.2

    1 首先安装好VirtualBox 2 下载好rhel server 7 2 xff0c 下载好长这样 3 点击新建 xff0c 在弹出窗口中输入名称 xff0c 选择类型和版本 xff0c 之后点击下一步 4 选择内存大小 xff0c 根
  • HTML 页面中的 target 用法

    值含义 blank在新窗口中打开链接 parent在父窗体中打开链接 self在当前窗体打开链接 此为默认值 top在当前窗体打开链接 xff0c 并替换当前的整个窗体 框架页 一个对应的框架页的名称在对应框架页中打开
  • VirtualBox挂载RedHat光盘

    1 使用root用户登录RedHat系统 xff0c 点击设备 gt 安装增强功能 2 安装增强功能后桌面会出现一个光盘标志 xff0c 弹出框点取消 3 为防止后续步骤出错 xff0c 此处重新分配光盘 点击设备 gt 分配光驱 xff0
  • RedHat系统使用yum安装软件

    使用yum命令安装软件 xff0c 此处以system config users为例 1 配置yum源配置文件 xff08 存放在 etc yum repos d文件夹下 xff09 xff1b 切换到 etc yum repos d文件夹
  • 初识HTML

    什么是HTML xff1f HTML 指的是超文本标记语言 HyperText Markup LanguageHTML 不是一种编程语言 xff0c 而是一种标记语言标记语言是一套标记标签 markup tag HTML 使用标记标签来描述
  • Window 安装MySQL8

    1 下载安装包 官网下载MySQL安装包 xff0c 下载地址 https dev mysql com downloads mysql 2 解压缩 将下载好的压缩包解压至你的安装目录 xff0c 我的路径为E tools MySQL ins
  • Windows 安装Navicat 连接MySQL

    1 下载Navicat Premium 进入官网https www navicat com cn download navicat premium下载Navicat Premium 2 安装 选择安装路径 然后一直点击下一步 xff0c 直
  • win10 安装Python3.8和pip

    下载安装包 1 进入Python官网https www python org xff0c 选择Windows 2 往下滑 xff0c 找到3 8 10 xff0c 选择Download Windows installer 64 bit xf
  • jeston TX1/TX2 系统迁移至SD卡的正确步骤

    如果是刚刚开始Nvidia jeston TX1 TX2 开发的初学者 xff0c 希望本文可以帮助节省时间 首先上张图 xff0c 完成配置后的 jeston TX1 载板使用的是作者自己设计的EdgeBox EHub tx1 tx2 E

随机推荐