一、初始化过程

/***********************************************************************
利用TIM4定时器作为计时,每个0.1秒处理一次数据
计算周期的公式为: psc/72*period/1000000 (单位为秒)
************************************************************************/

     void TIM2_Config(void)
{
TIM_TimeBaseInitTypeDef TIM_timeBaseStucture;
TIM_OCInitTypeDef TIM_OCInitStructure; u16 period = ; //设置PWM周期值(ARR值)
u16 pluse = ; //设置PWM脉冲宽度值(CRR值) RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE); //使能TIM4时钟 TIM_DeInit(TIM4); //重置TIM4
//配置TIM4时基
TIM_timeBaseStucture.TIM_ClockDivision = TIM_CKD_DIV1; //分频因子
TIM_timeBaseStucture.TIM_Prescaler = -; //预分频
TIM_timeBaseStucture.TIM_CounterMode = TIM_CounterMode_Up; //向上计数
TIM_timeBaseStucture.TIM_Period = period;
TIM_TimeBaseInit(TIM4, &TIM_timeBaseStucture); //配置TIM通道1的PWM输出
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; //PWM输出模式为PWM1
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //设置有效电平的极性
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //使能通道输出PWM
TIM_OCInitStructure.TIM_Pulse = pluse; //设置PWM的脉冲宽度值,即CRR值
TIM_OC1Init(TIM4, &TIM_OCInitStructure); TIM_ARRPreloadConfig(TIM4, ENABLE); //使能TIM3的寄存器ARR的预装载功能,DISABLE时将会使改变ARR值时立即生效
TIM_OC1PreloadConfig(TIM4, TIM_OCPreload_Enable); //使能TIM3通道1的CCR的预装载功能,DISABLE时将回使改变CRR值时立即生效 //使能TIM4定时器
TIM_Cmd(TIM4, ENABLE); TIM_ClearFlag(TIM4, TIM_FLAG_Update); //先清除定时器更新标志位,防止一开启就进入中断处理函数 TIM_ITConfig(TIM4, TIM_IT_Update,ENABLE);
NVIC_EnableIRQ(TIM4_IRQn); }

 

二、TIM4中断函数

TIM4中断有很多种

     void TIM4_IRQHandler(void)
{
if(TIM_GetITStatus(TIM4,TIM_IT_Update)==SET)
{
printf("here happened TIM4 IRQ.\n");
TIM_ClearITPendingBit(TIM4,TIM_IT_Update);
} }

TIM4定时器功能设置的更多相关文章

  1. Linux使用一个定时器实现设置任意数量定时器功能【转】

    转自:https://www.jb51.net/article/120748.htm 为什么需要这个功能,因为大多数计算机软件时钟系统通常只能有一个时钟触发一次中断.当运行多个任务时,我们会想要多个定 ...

  2. laravel实现定时器功能

    前记 laravel实现定时器功能有两种方法: 1. 使用 command . 2.   在闭包函数内写实现的方法. 在这里我比较推荐第一种方法,因为第一种方法把具体的实现抽离出来了,看起来简单且富有 ...

  3. 定时器_在.net core3.0 webapi中添加自定义定时器功能

    前言:想在.net framework环境使用自定义定时器的话,参考我的另一篇文章:https://www.cnblogs.com/lxhbky/p/10242839.html 想在.net core ...

  4. browserCaps与浏览器功能设置

    使用 Web.config 文件中的 browserCaps 元素来定义浏览器的行为在 .NET Framework 2.0 中被否决,但仍受支持.此元素中的数据与浏览器定义文件 (.browser) ...

  5. TeeChart控件的安装与常用 功能设置

    TeeChart控件的安装 TeeChart 7.0 With Source在Delphi 7.0中的安装 一.删除Delphi7自带TeeChart  1.Component -> insta ...

  6. Eclipse自动补全功能和自动生成作者、日期注释等功能设置

    修改作者.日期注释格式:打开Windows->Preferences->Java->Code Style->Code Templates,点击右边窗口中的Comments,可以 ...

  7. Linux Eclipse代码提示功能设置(Java & C/C++)

    最近在Linux下开发,由于长期使用Visual Studio 2010,对代码提示功能情有独钟,现在在Linux下,使用Eclipse做开发,当然免不了怀念Visual Studio强悍的代码提示, ...

  8. Eclipse代码提示功能设置(Java & Eclipse+CDT C/C++)

    http://developer.51cto.com/art/200907/136242.htm http://blog.chinaunix.net/u/21684/showart_462486.ht ...

  9. WIN8 、WIN7 下IIS7.5、IIS8 的rewrite 伪静态功能设置方法

    原文 WIN8 .WIN7 下IIS7.5.IIS8 的rewrite 伪静态功能设置方法 win7和win8系统都自带有iis的功能.关于IIS的安装,上一篇已经讲述,这里就不重复了. 下面说下在w ...

随机推荐

  1. php nl2br()函数 语法

    php nl2br()函数 语法 作用:在字符串中的新行(\n)之前插入换行符dd马达 语法:nl2br(string,xhtml) 参数: 参数 描述 string 必须.规定要检查的字符串. xh ...

  2. SEERC 2018 I - Inversion (Gym - 101964I) DP

    Gym - 101964I 题意 有一个数组\(p\),如果满足\(i<j,p_i>p_j\),则\(i,j\)之间就有一条边相连,问存在多少个集合满足集合内的元素互不相连,且集合外的元素 ...

  3. 【Python】用python -m http.server 8888搭建本地局域网

    python -m http.server 8888 由于工作中经常会用到局域网中同事之间互传文件,当文件太大时,可以采用局域网ftp之类的方式进行传输. 这里采用python的一个服务,可以快速的搭 ...

  4. sts bug SpringJUnit4ClassRunner

    SpringJUnit4ClassRunner找不到,不会自动修复, 只能复制引用过去 import org.springframework.test.context.junit4.SpringJUn ...

  5. 前端每日实战:18# 视频演示如何用纯 CSS 创作 404 文字变形为 NON 文字的交互特效

    效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/ZoxjXm 可交互视频教程 此视频 ...

  6. Gym10198-Mediocre String Problem-2018南京ICPC现场赛

    目录 Catalog Solution: (有任何问题欢迎留言或私聊 && 欢迎交流讨论哦 Catalog @ Problem:传送门  Portal  原题目描述在最下面. Solu ...

  7. java并发编程笔记(十一)——高并发处理思路和手段

    java并发编程笔记(十一)--高并发处理思路和手段 扩容 垂直扩容(纵向扩展):提高系统部件能力 水平扩容(横向扩容):增加更多系统成员来实现 缓存 缓存特征 命中率:命中数/(命中数+没有命中数) ...

  8. Charles重发请求

    1.如下图 2.选中某个接口,右键--选择 Repeat Advanced选项,设置请求多次 3.

  9. excel vlookup的使用

    表1 姓名 部门 ***   ***   ***   ***   表2 姓名 部门 ***  *** *** ***  *** ***  *** ***  找表2的姓名对应部门,粘贴在表1中 vloo ...

  10. Cocos2d 之FlyBird开发---GameAbout类

    |   版权声明:本文为博主原创文章,未经博主允许不得转载.(笔者才疏学浅,如有错误,请多多指教) 一般像游戏关于的这种界面中,主要显示的是游戏的玩法等. GameAbout.h #ifndef _G ...