STM32F411RE项目开发-3-定时器的使用

STM32F411RE项目开发-定时器的使用
1、点亮LD2小灯
2、使用按键中断控制小灯打开关闭
3、定时器的使用

这里写目录标题

    • STM32F411RE项目开发-3-定时器的使用
  • 前言
    • 创建工程
      • 总结

前言

STM32F411RE 使用的是ST官方的NUCLEO开发板进行开发
开发工具:
1、CubeMX
2、CubeIDE
3、CubePrograme
准备材料:
1、NUCLEOF411RE开发板
2、数据线

创建工程

由于STM32F411re TIM1 对应的APB2 时钟频率高达84MHz,因此我们如果想定时1s,则需要将分频系数设置为8400-1,而溢出值设置成10000-1即可,然后使能自动填充。


生成代码后


static void MX_TIM1_Init(void)
{/* USER CODE BEGIN TIM1_Init 0 *//* USER CODE END TIM1_Init 0 */TIM_ClockConfigTypeDef sClockSourceConfig = {0};TIM_MasterConfigTypeDef sMasterConfig = {0};/* USER CODE BEGIN TIM1_Init 1 *//* USER CODE END TIM1_Init 1 */htim1.Instance = TIM1;htim1.Init.Prescaler = 8400-1;htim1.Init.CounterMode = TIM_COUNTERMODE_UP;htim1.Init.Period = 10000-1;htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;htim1.Init.RepetitionCounter = 0;htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;if (HAL_TIM_Base_Init(&htim1) != HAL_OK){Error_Handler();}sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;if (HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig) != HAL_OK){Error_Handler();}sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK){Error_Handler();}/* USER CODE BEGIN TIM1_Init 2 */HAL_TIM_Base_Start_IT((TIM_HandleTypeDef *)&htim1);/* USER CODE END TIM1_Init 2 */}

注意这里最后需要启动TIM计数器,使用函数

HAL_TIM_Base_Start_IT((TIM_HandleTypeDef *)&htim1);

由于我们选择的是向上计数,溢出后触发中断,因此我们的中断函数应当如下书写,重写callback函数,函数内容就是翻转LD2 闪光灯即可。

void TIM1_UP_TIM10_IRQHandler(void)
{/* USER CODE BEGIN TIM1_UP_TIM10_IRQn 0 *//* USER CODE END TIM1_UP_TIM10_IRQn 0 */HAL_TIM_IRQHandler(&htim1);/* USER CODE BEGIN TIM1_UP_TIM10_IRQn 1 *//* USER CODE END TIM1_UP_TIM10_IRQn 1 */
}/* USER CODE BEGIN 1 */void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{HAL_GPIO_TogglePin(LD2_GPIO_Port, LD2_Pin);
}
/* USER CODE END 1 */

总结

定时器的使用非常简单,我们只需要按照:配置clock->配置定时参数(向上计数或向下等)->开始定时器工作->中断函数执行 这几个核心步骤来就好了

关注作者,后面会带着大家学习更多的stm32知识。也可以添加作者QQ:3626877231,或QQ群:329635835

STM32F411RE项目开发-3-定时器的使用相关推荐

  1. STM32F411RE项目开发-1-点亮LD2小灯

    STM32F411RE项目开发-1-点亮LD2小灯 1.点亮LD2小灯 2.使用按键中断控制小灯打开关闭 3.定时器的使用 文章目录 STM32F411RE项目开发-1-点亮LD2小灯 前言 一.创建 ...

  2. vue-music(1)音乐播发器 项目开发记录

    Vue-Music 跟学一个网课老师做的仿原生音乐APP跟学的笔记,记录点滴,也希望对学习vue初学小伙伴有点帮助 一| 前期工作 1.项目初始化 npm install -g vue-cli vue ...

  3. TMS320F28335项目开发记录9_28335之中断系统

    TMS320F28335项目开发记录9_28335之中断系统 2014年11月08日 12:00:12 阅读数:3104 28335中断系统 1.中断系统 在这里我们要十分清楚DSP的中断系统.C28 ...

  4. 京东抽奖项目开发笔记

    京东抽奖项目开发笔记 前言: 这是一个独立项目,这个项目会由我们四个人来一起完成,所以首先就要分工合作,我是写前端的,所以我会先把基本的页面写出来 1.注册页 这是注册页的代码 <!DOCTYP ...

  5. 黑马瑞吉外卖项目开发笔记

    目录 软件开发整体介绍 开发流程 角色分工 软件环境 瑞吉外卖项目介绍 项目介绍 产品原型展示 技术选型 功能架构 角色 开发环境搭建 数据库环境搭建 Maven环境搭建 1.直接创建maven项目( ...

  6. web前端不用怕,外卖平台的项目开发流程,大全!!

    项目开发流程 1. 创建客户端项目 1.1 使用 vue-cli(脚手架)搭建项目 #在Github新建Vue-MintShop项目,然后clone到本地 git clone git@github.c ...

  7. 尚硅谷前端项目开发笔记

    尚硅谷前端项目开发笔记 B站视频直达,这个项目亮点在于所有 API 请求都并非在组件内编写,而是在组件内使用this.$store.dispatch() 派发任务,再由 Vuex(actions.mu ...

  8. 基于C++的网盘系统项目开发教程

    项目资源下载 基于C++的网盘系统项目源码CSDN下载地址 基于C++的网盘系统项目源码GitHub下载地址 项目简介 本项目基于C++开发,整个项目采用C/S架构,使用Sqlite3数据库存储用户信 ...

  9. 项目开发-疯狂连连看游戏开发

    疯狂连连看游戏开发 游戏简介:疯狂连连看,是一款简单易玩的手机休闲游戏,界面布局简单,玩法简单,适合广大年龄层的用户进行休闲.放松.该游戏,应用于Android手机操作系统,Android1.6以上. ...

最新文章

  1. 实现php实现价格的排序,php 数组动态添加实现代码(最土团购系统的价格排序)_PHP教程...
  2. RxJava从入门到不离不弃(四)——过滤操作符
  3. shiny 发布部署到公开网站 ,供别人访问
  4. [SOJ] DAG?
  5. 重启oracle服务顺序,oracle 10g]命令行启动ORACLE服务及顺序
  6. 深度分析Java的ClassLoader机制(源码级别)
  7. 评价最高影片JAVAlibrary_视频 | 手游大神,动画导演,机圈新贵,极客怎么评价《愤怒的小鸟2》?...
  8. 写给省选前的自己V2
  9. 骁龙845重出江湖!iQOO Neo正式发布 售价1798元起
  10. eclipse svn
  11. mysql数据库银行项目题_银行数据库笔试编程题
  12. C4D R23 安装教程
  13. 文本特征提取专题_以python为工具【Python机器学习系列(十二)】
  14. VBA IE对象的操作方法
  15. 01-05.经典市场营销 Marketing公开课《科特勒营销管理》(一)
  16. 树莓派接入阿里云IOT平台1(Python模拟数据上传)
  17. 定制婚礼APP开发功能
  18. 计算机连接网络需要什么,宽带怎么安装需要什么_安装宽带步骤-系统城
  19. 塞拉利昂首次秘密进行基于区块链的总统选举
  20. 第九讲:一元函数积分学的几何应用

热门文章

  1. R语言之主成分回归与偏最小二乘xt8.3xt8.4
  2. C语言课程设计 管理系统
  3. ESP8266桌面气象站
  4. SSH和文件传输(SCP)
  5. c语言中字符串的子式咋样输出,C语言常用代码
  6. PSIM仿真+C语言(c block)实现PID控制和最小拍控制
  7. Scratch案例-冒泡排序
  8. SNMP、MIB和OID概述
  9. Maven下载及安装教程详解
  10. 堆排序算法(java实现)