TIM4定时器功能设置
一、初始化过程
/***********************************************************************
利用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定时器功能设置的更多相关文章
- Linux使用一个定时器实现设置任意数量定时器功能【转】
转自:https://www.jb51.net/article/120748.htm 为什么需要这个功能,因为大多数计算机软件时钟系统通常只能有一个时钟触发一次中断.当运行多个任务时,我们会想要多个定 ...
- laravel实现定时器功能
前记 laravel实现定时器功能有两种方法: 1. 使用 command . 2. 在闭包函数内写实现的方法. 在这里我比较推荐第一种方法,因为第一种方法把具体的实现抽离出来了,看起来简单且富有 ...
- 定时器_在.net core3.0 webapi中添加自定义定时器功能
前言:想在.net framework环境使用自定义定时器的话,参考我的另一篇文章:https://www.cnblogs.com/lxhbky/p/10242839.html 想在.net core ...
- browserCaps与浏览器功能设置
使用 Web.config 文件中的 browserCaps 元素来定义浏览器的行为在 .NET Framework 2.0 中被否决,但仍受支持.此元素中的数据与浏览器定义文件 (.browser) ...
- TeeChart控件的安装与常用 功能设置
TeeChart控件的安装 TeeChart 7.0 With Source在Delphi 7.0中的安装 一.删除Delphi7自带TeeChart 1.Component -> insta ...
- Eclipse自动补全功能和自动生成作者、日期注释等功能设置
修改作者.日期注释格式:打开Windows->Preferences->Java->Code Style->Code Templates,点击右边窗口中的Comments,可以 ...
- Linux Eclipse代码提示功能设置(Java & C/C++)
最近在Linux下开发,由于长期使用Visual Studio 2010,对代码提示功能情有独钟,现在在Linux下,使用Eclipse做开发,当然免不了怀念Visual Studio强悍的代码提示, ...
- Eclipse代码提示功能设置(Java & Eclipse+CDT C/C++)
http://developer.51cto.com/art/200907/136242.htm http://blog.chinaunix.net/u/21684/showart_462486.ht ...
- WIN8 、WIN7 下IIS7.5、IIS8 的rewrite 伪静态功能设置方法
原文 WIN8 .WIN7 下IIS7.5.IIS8 的rewrite 伪静态功能设置方法 win7和win8系统都自带有iis的功能.关于IIS的安装,上一篇已经讲述,这里就不重复了. 下面说下在w ...
随机推荐
- Android内存tips
1. Android应用程序的默认最大内存值为16M,如何修改Android应用程序的默认最大内存值? 修改或添加/system/build.prop中的配置项: root@NX551J:/syste ...
- python使用开源图片识别第三方库tesseract
详细安装博客:https://blog.csdn.net/luanyongli/article/details/81385284 第一步tesseract-ocr的安装如果不会请参照:https:// ...
- 2018-2019-2 20175126谢文航 实验三《敏捷开发与XP实践》实验报告
一.实验报告封面 课程:Java程序设计 班级:1751 班 姓名:谢文航 学号:20175126 指导教师:娄嘉鹏 实验日期:2019年5月2日 实验时间:--- 实验序号:实验三 实验名称:敏捷开 ...
- LintCode之删除链表中的元素
题目描述 我的代码 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode n ...
- HDU 3183 A Magic Lamp(RMQ问题, ST算法)
原题目 A Magic Lamp Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- Nginx+Tomcat Session 无效问题
omcat 和 Nginx 是相互独立的,在创建 Session 的时候,会根据部署的 Path 作为 Session Cookie 的 Path 路径,原则就是解决 Session Path 路径问 ...
- day 90 RBAC
参考博客 -陈晓梅 http://www.cnblogs.com/c-x-m/p/9025478.html 登录view from django.shortcuts import render,red ...
- ubuntu snap 包管理器
基本使用 snap find $package snap install $package [--channel=beta] snap list snap refresh $package [--ch ...
- Linux环境下OpenSceneGraph的安装和配置
1.在GitHub上下载OpenSceneGrpah的源码包,地址. 2.解压缩源码包并进入源码包; 3.安装所需的依赖库: 先输入命令: sudo apt-get install openscene ...
- spring注解开发:bean的作用域与懒加载
1.bean的作用域 1.新建一个maven工程,添加如下依赖 <dependency> <groupId>org.springframework</groupId> ...