TIM基本定时器——定时

2023-05-16

1.定时器功能:

定时、输出比较、输入捕获、互补输出

分类:
基本定时器(定时)
通用定时器(定时、输出比较、输入捕获)
高级定时器(定时、输出比较、输入捕获、互补输出)

F103系列的开发板一般是俩个高级定时器TIM1、TIM8;4个通用定时器TIM2/3/4/5;2个基本定时器TIM6/7

而根据容量的大小,又稍有区别。
STM32S103RBT6开发板只有TIM1/2/3/4
在这里插入图片描述

二、基本定时器:

1.16位,TIM6/7,只能向上计数
2.无GPIO引脚,属于内部资源
3.挂接在APB1上,时钟来自PCLK1,但频率是72MHz(原因如图),可1~65536分频
4.计数器时钟=时钟源/(分频系数+1),则计数1次时间就是 1/计数器时钟
在这里插入图片描述
例:
如果要定时1ms,时钟源的72MHz不能改动,可以改的是分频系数和重装载的值。如:
令PSC=72-1=71,定时器频率为72/(71+1)=1MHz。
则一次计数为1us。ARR值设置为1000,则可以定时1ms。

typedef struct
{
  uint16_t TIM_Prescaler;    //分频因子                                72-1     即频率为1MHz,即1us    
  uint16_t TIM_CounterMode;      //计数模式(基本定时器只能向上)      向上/向下(基本定时器可以不配置)
  uint16_t TIM_Period;      //自动重装载值                             1000-1   计数1000次,即1ms 
  uint16_t TIM_ClockDivision;  //外部输入时钟分频因子(基本定时器没有)
  uint8_t TIM_RepetitionCounter;  //重复计数器(高级定时器专属)       100,则每次重装载不触发中断,重装载100次以后才触发中断,即100ms
} TIM_TimeBaseInitTypeDef; //时基初始化结构体

tim.c

#include "tim.h"


void TIM_Config(void)
{
	TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct;
	
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE);
  	TIM_TimeBaseInitStruct.TIM_Prescaler=71;
	TIM_TimeBaseInitStruct.TIM_Period=1000-1;      

 	TIM_TimeBaseInit(TIM4,&TIM_TimeBaseInitStruct);
	TIM4_NVIC();
	TIM_ClearFlag(TIM4,TIM_FLAG_Update);
	TIM_ITConfig(TIM4,TIM_IT_Update,ENABLE);
	TIM_Cmd(TIM4,ENABLE);

}
void TIM4_NVIC(void)
{
	NVIC_InitTypeDef NVIC_InitStruct;
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);

	NVIC_InitStruct.NVIC_IRQChannel= TIM4_IRQn;
	NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority =	1;
	NVIC_InitStruct.NVIC_IRQChannelSubPriority=	1 ;
	NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE;
	NVIC_Init(&NVIC_InitStruct);
}

main.c

#include "stm32f10x.h"
#include "led.h"
#include "./TIM/tim.h"
uint16_t time=0;
int main()
{
	LED_GPIO_Config();
	TIM_Config();
	while(1)
	{
	 	if(time==1000)
		{
			LED_G(1);
		}
		else if(time==2000)
		{
			LED_G(0);
			time=0;
		}
	}
}

中断函数:

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

TIM基本定时器——定时 的相关文章

  • tensorflow数据清洗

    import tensorflow as tf import numpy as np import random import os import math from matplotlib import pyplot as plt def
  • 利用PHPExcel导出数据,下载excel文件正常,打开报错:'break' not in the 'loop' or 'switch' context

    今天有一个需求 xff0c 是利用phpexcel类导出数组为excel文件并下载 xff0c 我本地用的是phpstudy环境 xff1a php版本7 1 13 下载文件正常 xff0c 但是导出的excel文件里面是报错信息 如下 于
  • 如何利用python开启简单http server服务

    一 背景 有时候搭建一个简易的http服务器可以大大提高工作效率 xff0c 比如局域网内共享文件 xff0c http测速等 下文将介绍一种使用python开启简单http server服务的方法 二 构建步骤 1 将python添加到环
  • alembic教程

    安装 pip install alembic 步骤 1 初始化 alembic 仓库 在终端中 xff0c cd 到你的项目目录中 xff0c 然后执行命令 alembic init alembic xff0c 创建一个名叫 alembic
  • 【MATLAB】多个子图之间colorbar不共享问题解决方法

    在实验时 xff0c 发现subplot后每个子图的colorbar不统一 xff0c 于是一番百度 找到解决方法 xff1a 在绘制每个子图后 xff0c 使用caxis 0 1 命令 xff0c 成功解决 for example spa
  • 手把手教你调整电脑磁盘的分区大小

    教程目录 一 前言二 准备工具三 注意事项四 分区步骤 一 前言 我们电脑在使用过程中会下载很多软件 xff0c 尤其是我们计算机专业 xff0c 那不各种IDE装起来 xff0c 这时候会导致某个盘的空间不足 xff0c 需要给它再分些空
  • VirtualBox快照创建

    1 点击控制 gt 生成备份系统快照 2 添加快照名称和描述 xff0c 方便以后还原 3 等待一会 4 备份完成后可在VirtualBox管理器中看到生成的备份
  • putty连接出现remote side unexpected closed network-connection错误

    putty远程连接Red Hat Enterprise Linux 出现remote side unexpected closed network connection错误 查看日志文件 val log secure span class
  • IDEA 创建Servlet项目

    1 打开IDEA xff0c 点击Create New project创建一个一个新项目 2 点击Java Enterprise xff0c 然后选择Web Application xff0c 点击Next 3 设置项目名 xff0c 项目
  • 数据库接口类和接口实现类

    数据库接口类 xff08 BasicDAO java xff09 xff1a 实现对数据库的直接增删查改的interface接口 span class token keyword import span java span class to
  • Linux安装Anaconda

    Anaconda是一个开源的Python发行版本 xff0c 其包含了conda Python等180多个科学包及其依赖项 一 安装Anaconda 1 下载Anaconda安装包 xff08 我的位置是hadoop的家目录 xff0c 即
  • Windows 安装Maven3.6.1

    Win10 安装Maven3 6 1 xff0c 并为IntelliJ IDEA配置本地maven 一 安装Maven二 配置Maven本地仓库三 为IntelliJ IDEA配置本地maven 一 安装Maven 1 前提安装好jdk 2
  • 使用gorm创建casbin数据库报错

    1 报错 span class token operator span github span class token punctuation span com span class token operator span casbin s
  • Java 操作HBase

    Java 操作HBase 思路 1 建立连接 2 针对表的操作 xff08 创建表 删除表 判断表是否存在 使用 禁用表 列出表 xff09 3 针对数据的操作 xff08 添加 删除 修改 查看 xff09 4 关闭连接 HBase常用的
  • strtok和strtok_s函数使用说明

    看了很多高赞CSDN文章和百度百科 xff0c 越看越晕 xff0c 浪费好多时间 xff0c 特此记录 先介绍strtok xff0c 后边给个strtok s的例子 注意 xff1a 这两个函数必要连续调用多次才能实现分割和输出功能 x
  • chmod修改权限的用法

    一 chmod作用 xff1a 修改文件 目录的权限 二 语法 xff1a chmod 对谁操作 操作符 赋予的权限 文件名 三 操作对象 xff1a u 用户user xff0c 表现文件或目录的所有者 g 用户组group xff0c
  • 一篇文章入门Stm32CubeMX在freertos系统下进行uart串口通讯

    相信大部分人早期入门STM32系列单片机都是从各种例程入手的 xff0c STM32单片机繁多的寄存器已经不允许我们像学51系列单片机一样直接操作寄存器了 xff08 如果你记忆力好 xff0c 或者愿意花很多时间翻芯片手册查看对应寄存器的
  • Note: Python_Matplotlib绘制平滑曲线和散点图

    给出横坐标纵坐标点 xff0c 即可连线绘图 import matplotlib 调用绘图工具包 给出x y点坐标 x y 61 1 2 3 4 5 6 5 9 3 4 7 5 绘图 matplotlib pyplot plot x y 这
  • Word论文中设置正文中的引用参考文献 按住Ctrl键+单击鼠标右键 实现跳转到论文参考文献的对应位置

    Word论文中设置正文中的引用参考文献 按住Ctrl键 43 单击鼠标右键 实现跳转到论文参考文献的对应位置 首先要确保文中参考文献排版是插入的编号 xff0c 而不是自己手敲的 1 2 在正文要引用参考文献的位置 点击上方菜单栏的 插入
  • NVM 安装node.js后没有npm

    我们在使用NVM管理工具安装一个新的node后 xff0c 发现没有npm可以使用 参考文档 是因为在使用NVM安装node的时候不会默认安装npm xff0c 所以需要我们自己下载后放到nvm对应的node目录下面 npm下载地址 xff

随机推荐

  • idea项目设置鼠标右键点击文件夹通过IDEA打开

    每次打开idea项目是每次都要打开idea再手动选择项目 xff0c 直接设置成右键打开会很方便 效果图 xff1a 1 首先 win 43 R 输入regedit 打开注册表 2 打开注册表后找到如下路径 xff1a 计算机 HKEY L
  • Java利用Stream统计List中每个元素的个数

    1 传统HashMap 新建HashMap然后for循环List去统计每个元素出现的次数的方法实现 public static Map lt String Integer gt frequencyOfListElements List it
  • Git操作一直要求输入用户名和密码

    通过如下命令配置 xff1a git config global credential helper store git config global user email git config global user name 配置好后再去
  • Linux下的简单线程池

    问题描述 xff1a 在我们的日常生活中 xff0c 如果我们现在要浏览一个网页或者频繁的打开一个执行时间较短的任务 xff0c 如果每次调用都创建一个线程 xff0c 使用结束后就立即释放 xff0c 那么这样的开销对于操作系统来说有点太
  • 对于MYSQL中左对齐右对齐的实现

    在查询表的时候 xff0c 因为是表格的形式 会想要让其左对齐和右对齐的形式 能够看起来舒服一点 书上写的是ltrim rtrim方法 但是具体实现起来并不是很理想 左对齐很快 一开始表格的显示形式就是左对齐 或者用ltrim 右对齐的话
  • 记录罗技键盘从win切换mac的经历

    罗技蓝牙键盘ALT和WIN键 OPT和CMD键 如何对调 今天一直正常使用的罗技K380蓝牙键盘 不知道怎么抽风了 opt键和cmd键位置对调了 也就是windows环境下alt键和win键对调了 在使用复制粘贴快捷键的时候 特别不方便 而
  • IDEA中@author模板的设置

    在设置中查找Editor中的File and Code Templates 具体如下图所示 Created by IntelliJ IDEA 64 Author USER 64 create DATE TIME
  • 解决Win10搜索框没有反应

    刚发现电脑搜索突然不好使 xff0c 这个办法一下就解决了 在状态栏左下角的搜索框搜索OneNote没有任何反应 xff0c 对 xff0c 就是这个地方 最后在另一篇博客上找到了答案 xff0c 那篇博客也是在知乎找到的答案 xff0c
  • mac终端走代理

    mac终端走代理 mac即使打开了代理可以正常上网 xff0c 但终端默认不走代理 xff0c 需要手动配置终端代理 mac终端走代理的方法 span class token operator span 方法一 xff1a xff08 推荐
  • 从数据集CLEVR来看视觉推理的发展

    一 视觉推理的发展 视觉推理 Visual Reasoning 概念的兴起是在Li Fei Fei组提出的 CLEVR 数据集后 xff0c 被大家广泛认识并且越来越多的人开始研究 xff0c 大家提出的各种模型都是为了让机器或者是神经网络
  • Xmanager安装与使用攻略

    文章目录 前言一 工具二 步骤 前言 Xmanager 是一款可以在自己的办公电脑Windows机器下 xff0c 用于远程连接控制服务器Linux UNIX的管理工具 本经验介绍如何在windows上安装xmanager 一 工具 XMa
  • tensorflow的tensor张量如何转化为numpy数组?

    比方说 xff0c a是一个已经定义好的tensor张量 那么直接 xff1a a numpy 即可
  • vnc登录不上解决办法

    备忘 xff01 环境介绍 xff1a ubantu16 04 xff0c 安装了anaconda xff0c QT xff0c cmake xff0c 乱七八糟一堆东西 环境变量也改了很多 xff0c 不知为何会影响vnc桌面的启动 解决
  • js删除数组中的指定对象

    文章目录 实现效果封装工具函数完整demo 实现效果 封装工具函数 思路就是 xff0c 遍历取到每个对象和对应下标 xff0c 通过自定义的函数判断该对象是否删除 xff0c span class token comment 删除数组中指
  • 用OpenCV储存视频时遇到的问题

    用 MJPG 格式储存 34 avi 34 格式时报错 cv2 error OpenCV 3 4 1 io opencv modules videoio src container avi cpp 737 error 215 pos lt
  • debian 10执行提示service: command not found(找不到service命令)解决方法

    debian 10 用 root 执行提示 bash service command not found xff08 找不到 service 命令 xff09 解决方法 问题 想要执行 service xff0c 发现找不到命令 xff0c
  • IAR平台进行编译时常见错误:

    1 IAR编辑时出现如下错误 xff1a Near constant start address 43 size must be less than 错误原因是 xff1a 代码对应的Device 芯片选型错误 解决方法 xff1a 将Ge
  • PHPexcel报出错误‘break‘ not in the ‘loop‘ or ‘switch‘ context

    今天本地改代码改完做测试发现现在的文件中打开是 break 39 not in the 39 loop 39 or 39 switch 39 context 这样的 xff1b 当时一脸懵逼 xff0c 这是一个老项目最近也没动啊怎么回事
  • Linux Centos7 xfsdump文件系统的备份和恢复

    xfs提供了 xfsdump 和 xfsrestore工具 xff0c 协助备份xfs文件系统中的数据 xfsdump按 inode顺序备份一个xfs文件系统 CentOS7默认文件系统是xfs xff0c CentOS6默认文件系统是ex
  • TIM基本定时器——定时

    1 定时器功能 xff1a 定时 输出比较 输入捕获 互补输出 分类 xff1a 基本定时器 xff08 定时 xff09 通用定时器 xff08 定时 输出比较 输入捕获 xff09 高级定时器 xff08 定时 输出比较 输入捕获 互补