【STM32】学习笔记(TIM定时器)-江科大

news2024/11/27 1:12:06

TIM(Timer)定时器

定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中断

16位计数器、预分频器、自动重装寄存器的时基单元,在72MHz计数时钟下可以实现最大59.65s的定时

不仅具备基本的定时中断功能,而且还包含内外时钟源选择、输入捕获、输出比较、编码器接口、主从触发模式等多种功能。

根据复杂度和应用场景分为了高级定时器、通用定时器、基本定时器三种类型

定时器类型

在这里插入图片描述

高级、通用、基本定时器

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

定时器初始化函数

#include "stm32f10x.h"                  // Device header
//初始化定时器
void Timer_Init(void)
{
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);//开启时钟
	
	TIM_InternalClockConfig(TIM2);//选择内部时钟,默认内部时钟,可以不写
	
	TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;//初始化时机单元
	TIM_TimeBaseInitStructure.TIM_ClockDivision = TIM_CKD_DIV1;//一分频 
	TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up;//向上计数;有三种
	TIM_TimeBaseInitStructure.TIM_Period = 10000 - 1;//
	TIM_TimeBaseInitStructure.TIM_Prescaler = 7200 - 1;
	TIM_TimeBaseInitStructure.TIM_RepetitionCounter = 0;
	TIM_TimeBaseInit(TIM2, &TIM_TimeBaseInitStructure);
	
	TIM_ClearFlag(TIM2, TIM_FLAG_Update);
	TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);//开启更新中断
	
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
	
	NVIC_InitTypeDef NVIC_InitStructure;
	NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;//中断通道
	NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
	NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;//中断抢占级
	NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;//中断优先级
	NVIC_Init(&NVIC_InitStructure);
	
	TIM_Cmd(TIM2, ENABLE);
}


//void TIM2_IRQHandler(void)
//{
//	if (TIM_GetITStatus(TIM2, TIM_IT_Update) == SET)//中断标志位
//	{
//		
//		TIM_ClearITPendingBit(TIM2, TIM_IT_Update);
//	}
//}


主函数

#include "stm32f10x.h"                  // Device header
#include "Delay.h"
#include "OLED.h"
#include "Timer.h"

uint16_t Num;

int main(void)
{
	OLED_Init();
	Timer_Init();
	
	OLED_ShowString(1, 1, "Num:");
	
	while (1)
	{
		OLED_ShowNum(1, 5, Num, 5);
	}
}

void TIM2_IRQHandler(void)
{
	if (TIM_GetITStatus(TIM2, TIM_IT_Update) == SET)
	{
		Num ++;
		TIM_ClearITPendingBit(TIM2, TIM_IT_Update);
	}
}

输出比较功能(智能车、机器人等)

OC(Output Compare)输出比较
输出比较可以通过比较CNT与CCR寄存器值的关系,来对输出电平进行置1、置0或翻转的操作,用于输出一定频率和占空比的PWM波形
每个高级定时器和通用定时器都拥有4个输出比较通道
高级定时器的前3个通道额外拥有死区生成和互补输出的功能
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
直流电机是一种将电能转换为机械能的装置,有两个电极,当电极正接时,电机正转,当电极反接时,电机反转
直流电机属于大功率器件,GPIO口无法直接驱动,需要配合电机驱动电路来操作
TB6612是一款双路H桥型的直流电机驱动芯片,可以驱动两个直流电机并且控制其转速和方向
在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/948809.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot实现简单的登录验证码

参考了一些资料,完成了这个验证码的功能,下面记录一下功能的实现过程。 一、效果图 二、实现原理 后台生成验证码图片,将图片传到前台。后台在session中保存验证码内容。前台输入验证码后传到后台在后台取出session中保存的验证码进行校验。…

x86架构 指令INT3只有一个字节的原因

文章目录 一、单字节原因简介二、断点原理三、单字节具体原因参考资料 一、单字节原因简介 INT3指令生成一个特殊的单字节操作码(CC),用于调用调试异常处理程序。(这种单字节形式很有价值,因为它可以用来用断点替换任何…

冠达管理:火爆!拼多多飙涨15%,中概股沸腾!这些外资巨头唱多中国资产

当地时间8月29日,美国三大股指团体收涨,道指涨0.85%,标普500指数涨1.45%,纳指涨1.74%。科技股大涨,特斯拉涨7.69%,英伟达涨4.16%。纳斯达克我国金龙指数收涨3.7%,拼多多涨超15%。 广东研山私募…

开源百度电商小程序源码 含完整代码包+安装部署教程 一键搭建商城小程序

分享一款开源百度电商小程序源码,含完整代码包安装部署教程,一键搭建商城小程序,源码开源可二开,已测试完美运营版,帮你一键搭建百度商城小程序,含多套模板、自由DIY功能和完整的搭建部署教程。程序支持除百…

微信测试号实现微信分享等功能

目录 1 申请微信测试号 2 测试号信息 3 下载微信的测试代码 4 将下载的代码放到自己的服务器上 5 接口配置信息 6 JS安全域名 ​7 扫码关注,只有关注的微信号才能测试 ​8 修改sample.php文件 9 在微信上打开,并分享 10 问题 1 申请微信测试号 …

【USRP】调制解调系列1:AM、FM解调

AM,DSB,SSB和VSB的联系是都为幅度调制(调幅) 区别: AM是调幅,带载波。 DSB是抑制载波的调幅,可增加功率效率,但两个边带均传输相同的信息。 SSB单边带抑制了一个边带&#xff0c…

高忆管理:etf联接基金有哪些?

ETF联接基金自面世以来,就备受出资者重视,由于它可以以比较低的本钱获得和国际市场相同的收益,而且具备杰出的流动性和简略易懂的买卖方法。那么,ETF联接基金都有哪些呢? 一、什么是ETF联接基金? ETF联接基…

Vue怎么安装?看这一篇就够了!

Vue2.0 安装 一般我们都不会单独用 npm 去安装 Vue 插件,而是通过脚手架 Vue CLI 去初始化一个 Vue 项目。 Vue CLI 安装 ::: warning 注意 使用默认的镜像源安装 npm 第三方包可能要很长时间,建议你已经替换了新的镜像源。如需要请查看 npm 镜像源修…

不用订阅,不用破解,永久免费使用Axure最新版教程

首先去官网下载最新的axure,你没听错,就是最新的。 下载网址:Axure RP - UX Prototypes, Specifications, and Diagrams in One Tool 下载完后解压安装到本地,并注册属于你自己的账户,开始试用。可惜的是只有30天的试…

零基础如何备考通过PMP?

​01为什么要去考?新手能考吗? 首先PO一个官方解释: PMP——项目管理专业人士资格认证,由项目管理协会(Project Management Institute)发起,在全球206多个国家和地区得到高度认可。 通俗点说就…

如何自己实现一个丝滑的流程图绘制工具(七)bpmn-js 批量删除、复制节点

背景 希望实现批量删除和复制节点,因为bpmn-js是canvas画的,所以不能像平时页面上的复制一样直接选择范围,会变成移动画布。 思路是: 绘制一个选择的效果框,这样才可以看出来选的节点有哪些。 上面的选中范围框效果…

CSS 实现平面圆点绕椭圆动画

前言 👏CSS实现平面圆点绕椭圆动画,速速来Get吧~ 🥇文末分享源代码。记得点赞关注收藏! 1.实现效果 2.实现原理 transform-style:CSS 属性 transform-style 设置元素的子元素是位于 3D 空间中还是平面中。如果选择平面&#xf…

Python GUI应用程序开发之wxPython使用详解

概要 wxPython是一个强大的跨平台GUI工具包,它使用Python编程语言开发,提供了丰富的控件功能。如果你是一名Python开发者,而且希望创建一个功能齐全的桌面应用程序,那么wxPython是一个值得考虑的选择。 什么是wxPython wxPython…

【论文阅读】你看不见我:对基于激光雷达的自动驾驶汽车驾驶框架的物理移除攻击

文章目录 AbstractIntroduction Abstract 自动驾驶汽车(AVs)越来越多地使用基于激光雷达的物体检测系统来感知道路上的其他车辆和行人。目前,针对基于激光雷达的自动驾驶架构的攻击主要集中在降低自动驾驶物体检测模型的置信度,以诱导障碍物误检测&…

宏观经济和风电预测误差分析(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

【LeetCode-中等题】199. 二叉树的右视图

文章目录 题目方法一&#xff1a;层序遍历取每一层最后一个元素方法二&#xff1a;深度优先搜索 题目 方法一&#xff1a;层序遍历取每一层最后一个元素 // 方法一 &#xff1a;层序 集合(取每层子集合最后一个元素)// List<List<Integer>> Rlist new ArrayList…

运动耳机哪款最好、热门运动耳机推荐

对于当代年轻人而言&#xff0c;运动健身已成为最流行的压力释放方式。然而&#xff0c;我们不得不承认&#xff0c;运动本身确实是一项沉闷而艰苦的挑战&#xff0c;需要我们付出大量汗水和持之以恒的坚持。 在运动过程中&#xff0c;许多人会借助音乐的律动来激励自己不断向前…

「2024」预备研究生mem-数学进阶卷(二)8.27 比较易错的难题,存在特殊方法

一共12道题&#xff1a; 回忆&#xff1a; 不错&#xff1a; 男生 没有要求顺序 &#xff0c;就不用A55了

得帆CTO徐翔轩:AIGC X 低代码,解锁无限可能

AIGC与低代码 在Open AI的ChatGPT的带动下&#xff0c;2023年已经成为公认的AI之年&#xff0c;Chat-GPT、Notion AI、Copilot等杀手级AI应用更是让大家认知到了AIGC的能力与潜力。AIGC在创新、效率等方面带来的颠覆性&#xff0c;让越来越多的数字化从业者感受到冲击与期待&a…