STM32F411RE项目开发-3-定时器的使用
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-定时器的使用相关推荐
- STM32F411RE项目开发-1-点亮LD2小灯
STM32F411RE项目开发-1-点亮LD2小灯 1.点亮LD2小灯 2.使用按键中断控制小灯打开关闭 3.定时器的使用 文章目录 STM32F411RE项目开发-1-点亮LD2小灯 前言 一.创建 ...
- vue-music(1)音乐播发器 项目开发记录
Vue-Music 跟学一个网课老师做的仿原生音乐APP跟学的笔记,记录点滴,也希望对学习vue初学小伙伴有点帮助 一| 前期工作 1.项目初始化 npm install -g vue-cli vue ...
- TMS320F28335项目开发记录9_28335之中断系统
TMS320F28335项目开发记录9_28335之中断系统 2014年11月08日 12:00:12 阅读数:3104 28335中断系统 1.中断系统 在这里我们要十分清楚DSP的中断系统.C28 ...
- 京东抽奖项目开发笔记
京东抽奖项目开发笔记 前言: 这是一个独立项目,这个项目会由我们四个人来一起完成,所以首先就要分工合作,我是写前端的,所以我会先把基本的页面写出来 1.注册页 这是注册页的代码 <!DOCTYP ...
- 黑马瑞吉外卖项目开发笔记
目录 软件开发整体介绍 开发流程 角色分工 软件环境 瑞吉外卖项目介绍 项目介绍 产品原型展示 技术选型 功能架构 角色 开发环境搭建 数据库环境搭建 Maven环境搭建 1.直接创建maven项目( ...
- web前端不用怕,外卖平台的项目开发流程,大全!!
项目开发流程 1. 创建客户端项目 1.1 使用 vue-cli(脚手架)搭建项目 #在Github新建Vue-MintShop项目,然后clone到本地 git clone git@github.c ...
- 尚硅谷前端项目开发笔记
尚硅谷前端项目开发笔记 B站视频直达,这个项目亮点在于所有 API 请求都并非在组件内编写,而是在组件内使用this.$store.dispatch() 派发任务,再由 Vuex(actions.mu ...
- 基于C++的网盘系统项目开发教程
项目资源下载 基于C++的网盘系统项目源码CSDN下载地址 基于C++的网盘系统项目源码GitHub下载地址 项目简介 本项目基于C++开发,整个项目采用C/S架构,使用Sqlite3数据库存储用户信 ...
- 项目开发-疯狂连连看游戏开发
疯狂连连看游戏开发 游戏简介:疯狂连连看,是一款简单易玩的手机休闲游戏,界面布局简单,玩法简单,适合广大年龄层的用户进行休闲.放松.该游戏,应用于Android手机操作系统,Android1.6以上. ...
最新文章
- 实现php实现价格的排序,php 数组动态添加实现代码(最土团购系统的价格排序)_PHP教程...
- RxJava从入门到不离不弃(四)——过滤操作符
- shiny 发布部署到公开网站 ,供别人访问
- [SOJ] DAG?
- 重启oracle服务顺序,oracle 10g]命令行启动ORACLE服务及顺序
- 深度分析Java的ClassLoader机制(源码级别)
- 评价最高影片JAVAlibrary_视频 | 手游大神,动画导演,机圈新贵,极客怎么评价《愤怒的小鸟2》?...
- 写给省选前的自己V2
- 骁龙845重出江湖!iQOO Neo正式发布 售价1798元起
- eclipse svn
- mysql数据库银行项目题_银行数据库笔试编程题
- C4D R23 安装教程
- 文本特征提取专题_以python为工具【Python机器学习系列(十二)】
- VBA IE对象的操作方法
- 01-05.经典市场营销 Marketing公开课《科特勒营销管理》(一)
- 树莓派接入阿里云IOT平台1(Python模拟数据上传)
- 定制婚礼APP开发功能
- 计算机连接网络需要什么,宽带怎么安装需要什么_安装宽带步骤-系统城
- 塞拉利昂首次秘密进行基于区块链的总统选举
- 第九讲:一元函数积分学的几何应用