//TIM3 分频
#define TIM3_DIV1 (1-1)
#define TIM3_DIV18 (18-1)
#define TIM3_DIV72 (72-1) //*************************************
// 函数名:TIM3_NVIC_Configuration
// 描述 :TIM3中断优先级配置
// 输入 :无
// 输出 :无 //*************************************
void TIM3_NVIC_Configuration(void)
{
NVIC_InitTypeDef NVIC_InitStructure; NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn; //选择中断通道
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; //抢占式优先级别值
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; //响应式中断优先级别值
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //中断使能值
NVIC_Init(&NVIC_InitStructure); //根据上述值初始化中断级别
}
//*************************************
// 函数名称:TIM3_BASEInit
// 函数功能:初始化TIM3 为定时模式
// 入口参数:计数个数 分频数
// 出口参数:无
// 返回值 :无
//***************************************
void TIM3_BASEInit(uint16_t Tcon,uint16_t psc)
{ RCC->APB1ENR |= 1<<1; //定时器3时钟使能
TIM3->CR1 |= 1<<7 ; //设置自动重装载允许
TIM3->CR1 &= ~(1<<4) ; //设置向上计数
TIM3->ARR = Tcon ; //定时器计数次数
TIM3->PSC = psc ; //设置分频数
TIM3->SR &= ~0x0001; //清除溢出标志
// TIM3->DIER |= 1<<6 ; //允许触发中断
// TIM3->EGR |= 0X0001 ; //允许产生更新事件
TIM3->DIER |= 0X0001 ; //允许更新中断
TIM3->CR1 |= 0X0001 ; //允许计数 }
//===系统库操作初始化TIM3=====
void TIM3_BASEInitSys(int16_t Tcon,uint16_t psc)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);
TIM_DeInit(TIM3); //复位定时器
TIM_TimeBaseStructure.TIM_Period = Tcon; //定时器重装载值
TIM_TimeBaseStructure.TIM_Prescaler = psc ; //时钟预分频
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; // 时钟分频
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //向上计数模式
TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStructure); //初始化定时器的值 TIM_ClearFlag(TIM3,TIM_FLAG_Update); //清除定时器中断标志
TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE); //使能中断
TIM_Cmd(TIM3,ENABLE); //开启时钟 } //---实例应用----
//用寄存器操作
TIM3_BASEInit(125,TIM3_DIV72) ; //72M/72 = 1M 125u中断一次 //用系统库操作
// TIM3_BASEInitSys(125,TIM3_DIV72) ; //72M/72 = 1M 125u中断一次

STM32F103 TIM3定时器初始化程序的更多相关文章

  1. 松瀚SN8P2501 定时器初始化程序--汇编源码

    /* 松瀚 SN8P2501B 定时器初始化程序 */ INI_IRQ: ;定时器T0初始化 MOV A, #01100000b ;定时器模式Fcpu/4 16M/4/4=1M 1U计一次 B0MOV ...

  2. Linux0.11内核剖析--初始化程序(init)

    1.概述 在内核源代码的 init/目录中只有一个 main.c 文件. 系统在执行完 boot/目录中的 head.s 程序后就会将执行权交给 main.c.该程序虽然不长,但却包括了内核初始化的所 ...

  3. 松瀚SN8P2711 2722 ADC初始化程序及应用--汇编源码

    /* 松瀚 SN8P2711 2722 ADC初始化程序 及应用实例 */ INIT_ADC: MOV A, #0XB2 // 启动ADC电路 使能AIN通道 B0MOV ADM, A MOV A,# ...

  4. ARM裸板开发:04_MMU 链接地址与运行地址不一致时,(SDRAM)初始化程序地址无关码问题的分析

    ARM裸板开发过程,程序的链接地址设置为为0x30000000,而前期的启动代码以及相关硬件的初始化代码需要在内部iRAM(steppingstone,起始地址0x0)的4K中运行.链接地址与运行地址 ...

  5. 浏览器默认标签样式总结及css初始化程序(转)

    浏览器默认标签样式总结及css初始化程序   html中的大部分的标签都有一些糟糕的样式,有的是标签天然自带的,有的是浏览器默认设置的,我们在写网页时,这些默认的样式就会时不时的跳出来捣一下乱,搞得我 ...

  6. 浏览器默认标签样式总结及css初始化程序

    html中的大部分的标签都有一些糟糕的样式,有的是标签天然自带的,有的是浏览器默认设置的,我们在写网页时,这些默认的样式就会时不时的跳出来捣一下乱,搞得我们很是无奈.所以成手在写css样式时,一般都会 ...

  7. TCP定时器 之 重传/延迟ACK/保活 定时器初始化

    创建socket时会创建传输控制块,之后调用初始化函数对控制块进行初始化,其中包括对定时器的初始化,tcp会调用tcp_init_xmit_timers函数来初始化这些定时器,本文将详细分析tcp_i ...

  8. STM32F103之定时器学习记录

    /==============翻译STM32F103开发手册定时器部分========================/ 14 高级控制计时器(TIM1和TIM8) 14.1 TIM1和TIM8介绍 ...

  9. 【单片机】CH32V103C8T6定时器3程序实验

    代码功能:每隔1毫秒进入一次定时器中断. 每隔1秒串口打印一次数据. time.c #include "time.h" #include "ch32v10x.h" ...

随机推荐

  1. nested exception is com.svorx.core.dao.PersistenceException

    在quartz定时执行任务的时候,hibernate报错,在只读事务中进行了update语句: [ERROR] 2018/08/03 10:35:00,827 org.quartz.core.JobR ...

  2. How to become a successful bug bounty hunter

    出处:https://www.hackerone.com/blog/become-a-successful-bug-bounty-hunter 如果你梦想成为赏金猎人,你的梦想就会成真 - 不要把你的 ...

  3. IE下常见兼容性问题总结

    概述 本小菜平时主要写后台程序,偶尔也会去写点前端页面,写html.css.js的时候,会同时开着ie6.ie7.ie8.ie9.chrome.firefox等浏览器进行页面测试,和大部分前端开发一样 ...

  4. CentOS安装SVN客户端(rpm)

    http://mirrors.163.com/centos/6/os/x86_64/Packages/ 1.检查是已经安装了svn: rpm -qa subversion subversion-1.7 ...

  5. nginx参数优化

    大家好,分享即关爱,我们很乐意和你分享一些新的知识,我们准备了一个 Nginx 的教程,分为三个系列,如果你对 Nginx 有所耳闻,或者想增进 Nginx 方面的经验和理解,那么恭喜你来对地方了. ...

  6. WebBrowserのIEバージョンを最新にする。

    WindowsフォームでWebBrowserコントロールを配置すると.IEのバージョンが 7 と古い.レジストリをいじると.IE11の Edgeモードに変更できる(参考記事).デザイン画面でWebBr ...

  7. 【前端开发】关于闭包最通俗易懂的解释 for循环,定时器,闭包混合一块的那点事。

    for循环,定时器,闭包混合一块的那点事. 1,对于一个基本的for循环,顺序输出变量值. for(var i = 1; i < 4; i++){ console.log(i);//结果不多说了 ...

  8. activiti helloworld 续

    todo... 8.开发流程部署功能 9.开发简单任务待办功能 10.开发简单任务办理功能 11.开发页面activiti流程跟踪图形展现功能 12.集成网页流程设计器

  9. Python 协程检测Kubernetes服务端口

    一.需求分析 在上一篇文章,链接如下: https://www.cnblogs.com/xiao987334176/p/10237551.html 已经得到了需要的数据,现在需要对这些端口做检测,判断 ...

  10. .NetCore利用Swagger生成 XML文档需要注意生成路径的地址

    发布的时候如果用 release dotnet publish --configuration release dotnet publish 默认都是debug 会出现 XML丢失问题,其实可以看下工 ...