当前位置: 首页 > article >正文

【HAL库】STM32CubeMX开发----STM32F407----Time定时器中断实验

STM32CubeMX 下载和安装 详细教程
【HAL库】STM32CubeMX开发----STM32F407----目录


前言

本次实验以 STM32F407VET6 芯片为MCU,使用 25MHz 外部时钟源。
实现定时器TIM3中断,每1s进一次中断。
定时器计算公式如下:
在这里插入图片描述
arr 是自动装载值,psc 是分频系数,Tclk 定时器的时钟。

一、使用STM32CubeMX----新建工程

步骤1:打开 STM32CubeMX 软件

具体 STM32CubeMX 界面如下:
在这里插入图片描述

步骤2:选择 从MCU开始我的项目

在这里插入图片描述

步骤3:选择MCU芯片

我们本次实验选择 STM32F407VET6 芯片做 MCU
在这里插入图片描述

进入工程编辑,具体界面如下:

在这里插入图片描述

步骤4:设置烧写方式为 SWD模式

这一步必须选择一种烧写方式,否则烧写一次程序后,芯片中就没法再次烧写程序了。需要硬件重启才可以重新烧写程序。

STM32烧写程序连接方式详解

在这里插入图片描述

步骤5:设置时钟源

设置外部晶振为芯片系统时钟源。
在这里插入图片描述

步骤6:定时器设置

定时器参数设置
在这里插入图片描述

Prtscaler (定时器分频系数) : 8399
Counter Mode(计数模式) : Up(向上计数模式)
Counter Period(自动重装载值) : 9999
CKD(时钟分频因子) : No Division 不分频
auto-reload-preload(自动重装载) : Enable 使能
其他的默认不变。

使能定时器中断
在这里插入图片描述

步骤7:设置时钟

STM32F407 时钟最大频率为 168M,我的开发板是 25M 外部时钟源,具体时钟配置如下:

在这里插入图片描述
本次实验以 STM32F407VET6 芯片为MCU,使用 25MHz 外部时钟源。
APB1是84MHz,TIM3定时器使用的时钟就是APB1。

步骤8:项目编辑

在这里插入图片描述

步骤9:代码生成编辑

在这里插入图片描述

步骤10:点击 GENERATE CODE 生成代码

在这里插入图片描述
新建的工程,已经生成,接下来就是对工程代码的编辑。

二、使用keil5----编辑程序

想要使用keil5打开工程,需要电脑先安装 keil5编译环境,具体操作流程。
可以点击下方文章链接:Keil5编译环境搭建流程----STM32和GD32

步骤1:使用keil5打开工程

点击工程文件中的MDK-ARM 文件
在这里插入图片描述

打开keil5工程
在这里插入图片描述

步骤2:用户代码 编辑位置

用户代码 要写在 USER xxxx BEGIN xxxUSER xxxx END xxx 之间。
这样下次使用 STM32CubeMX 重新生成代码后,自己写的代码不会被删除。
在这里插入图片描述

步骤3:使用到的HAL库函数

//启动定时器中断
HAL_StatusTypeDef HAL_TIM_Base_Start_IT(TIM_HandleTypeDef *htim);
//定时器中断回调函数
__weak void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim);

步骤4:开启定时器中断

在这里插入图片描述

步骤5:定时器中断服务函数中编辑

在这里插入图片描述

步骤6:编译程序,然后烧写程序到开发板

具体烧写操作步骤,可以查看以下文章,有详细的烧写说明。
文章链接:
烧写程序(STM32+GD32):ST-link V2调试下载器实物和连接方式
烧写程序(STM32+GD32):ST-link驱动下载和安装
烧写程序(STM32+GD32):Keil5使用ST-link下载程序
资源链接:ST-link驱动链接----点击下载

步骤7:实现结果

在这里插入图片描述



http://www.kler.cn/a/442997.html

相关文章:

  • FPGA自学之路:到底有多崎岖?
  • Ubuntu 配置静态 IP 地址
  • Excel工作表不能相互移动和复制?有何解决方法?
  • 【系统架构设计师】真题论文: 论软件设计方法及其应用(包括解题思路和素材)
  • 神州数码DCME-320 online_list.php存在任意文件读取漏洞
  • 基于物联网的智能插座云平台安全检测系统 WIFI云平台MQTT协议
  • Python机器学习笔记(九、无监督学习-预处理与缩放)
  • apache的常见报错
  • QT使用promoted后样式(setStyleSheet)不生效问题解决
  • 3D,点云平滑法线估计
  • 前端面经每日一题Day15
  • 如何使用datagrip连接spark
  • IDEA搭建springboot demo
  • Qlib专为AI而生的量化投资平台
  • GPT核心原理
  • 模具制造之三维扫描和逆向建模
  • 限制redis内存
  • 【赛博保安】安全日记反弹Shell加密算法信息打点(二)
  • LLM大语言模型私有化部署-OpenEuler22.03SP3上容器化部署Dify与Qwen2.5
  • 【Qt】QWidget中的常见属性及其功能(二)
  • ffmpeg使用方法