STM32F1笔记(九)通用定时器

STM32F1的定时器分为TIME1/8等高级定时器,TIME2~5等通用定时器,TIME6/7基本定时器。三者的区别主要参考《STM32中文参考手册》里特性的每种定时器主要特性的异同。

先看中文手册中通用定时器的简介:

通用定时器的寄存器有一个比较有趣的地方。

该寄存器在物理上实际对应着2个寄存器。

一个是程序员可以直接操作的,另外一个是程序员看不到的。

看不到的寄存器叫做影子寄存器,事实上真正起作用的是影子寄存器。

根据TIMx_CR1寄存器中APRE位的设置:APRE=0时,预装载寄存器的内容可以随时传送到影子寄存器,此时2者是连通的;而APRE=1时,在每一次更新事件(UEV)时,才把预装在寄存器的内容传送到影子寄存器。

通用定时器配置示例:

void TIM3_Init(u16 period, u16 prescaler)
{TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;NVIC_InitTypeDef NVIC_InitStructure;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);TIM_TimeBaseStructure.TIM_Period = period;	TIM_TimeBaseStructure.TIM_Prescaler = prescaler;TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);TIM_ITConfig(TIM3,TIM_IT_Update, ENABLE);NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;NVIC_Init(&NVIC_InitStructure);TIM_Cmd(TIM3, ENABLE);		 
}
TIM3_Int_Init(9,7199);//1ms

定时器时间计算:T = ( (1 + period) * (1 + prescaler) ) / 72000000 = ((1+ 9)*(1 + 7199))/72000000= 0.001s = 1ms

定时器中断服务函数示例:

void TIM3_IRQHandler(void)
{if(TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET){TIM_ClearITPendingBit(TIM3, TIM_IT_Update);}
}

因为配置中是向上计数,所以中断内是判断向上计数中断是否发生。

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

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

相关文章

c++保存图标到dll_自动保存邮件附件至指定文件夹

最近有个需求,ERP系统会自动发很多csv附件到我邮箱,我需要把这些附件上传到FTP服务器,服务器会把这些csv的数据写到另外一个系统的数据库。每次大概有30个邮件,每个邮件有一个附件,而且附件的名字都一样,是…

有时在Java中,一个布局管理器是不够的

在开发Java Swing应用程序时,最经常的是,我们需要在多个嵌套面板中使用多个布局管理器。 通常这不是问题,并且被认为是几乎所有人类已知语言的所有UI开发的常规做法。 但是,大多数情况下,对于UI中的每个面板&#xff0…

python中print的用法_Python中print函数简单使用总结

Python中print函数简单使用总结 print函数是Python的入门,每一个学习python的人都绕不开这个函数,下面介绍一下这个函数的用法。 打开电脑,选择python软件,下面选择python 3.7为例进行介绍,点击python 3.7,…

STM32F1笔记(十)PWM

PWM:Pulse Width Modulation,脉冲宽度调制。是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。简单来说就是对脉冲宽度的控制。 在《STM32中文参考手册》里可以看到 占空比:占空比是指在一个脉冲循环内,通电时…

从GlassFish 3.x扩展到WebLogic 12c Server

Oracle针对GlassFish服务器的策略的主要目标之一是“与Fusion Middleware and Products集成”(来源: Community Roadmap,2010年5月 )。 在今年早些时候,您听到了很多关于两台服务器合而为一的恐惧和谣言。 看到这两种产…

hashset去重原理_基于simhash的文本去重原理

互联网网页存在着大量重复内容,必须有一套高效的去重算法,否则爬虫将做非常多的无用功,工作时效性无法得到保证,更重要的是用户体验也不好。业界关于文本指纹去重的算法众多,如 k-shingle 算法、google 提出的simhash …

解决express video 手机无法播放的问题

http://stackoverflow.com/questions/24976123/streaming-a-video-file-to-an-html5-video-player-with-node-js-so-that-the-video-c 项目地址 https://github.com/shenggen1987/mp4-demo express index.jade extends layoutblock contenth1 titlep Welcome to #{title}vid…

STM32F1笔记(十一)ADC

查看《STM32中文参考手册》里ADC的介绍和特性 STM32的ADC最大转换速率为1Mhz,即1us,在ADCCLK14M,采样周期为1.5个ADC时钟下得到。当ADC的时钟超过14M时,将导致结果准确度下降。 规则通道相当于正常运行的程序。注入通道就相当于中…

java epoll select_字节跳动高频面试题,操作系统/算法/Java等。

字节跳动# Java▲ 20 Java 中垃圾回收机制中如何判断对象需要回收?常见的 GC 回收算法有哪些?▲ 18 synchronized 关键字底层是如何实现的?它与 Lock 相比优缺点分别是什么?▲ 17 hashmap 和 hashtable 的区别是什么?▲…

STM32F1笔记(十二)DAC

先看《STM32中文参考手册》中DAC的介绍 引脚的定义与ADC类似 这里需要留意手册提供的注意,DAC应该是输出,但是GPIO初始化配置时却要设置为模拟输入。 DAC配置示例 void DAC_Init(void) {GPIO_InitTypeDef GPIO_InitStructure;DAC_InitTypeDef DAC_Init…

STM32F1笔记(十三)SPI

SPI:Serial Peripheral interface,串行外围设备接口。 SPI接口一般使用4条线通信: MISO主设备数据输入,从设备数据输出。 MOSI主设备数据输出,从设备数据输入。 SCLK时钟信号,由主设备产生。 从图中可以…

在WebLogic 12c上运行RichFaces 4.1.0.Final

您可能已经注意到,我只是喜欢JSF。 不仅是Mojarra的规范和参考实现,而且是市场上最具创意的组件套件。 这是我一直以来最喜欢的PrimeFaces ,当然还有RichFaces 。 这就是为什么在这里找到“在xxx上运行xxx”帖子的原因:)今天是我的RichFaces和…

C语言开发笔记(一)自动转换和强制转换

整型数据和实行数据之间可以进行运算,而且字符型数据可以和整型数据通用,所以整型、实型、字符型数据之间也是可以进行运算的,但在运算处理之前,不同类型的数据要事先转换成同一种数据类型。转换方法有两种:自动转换和…

Maven 导出依赖Jar,生成source.jar,javadoc.jar

下载最新版的Maven http://maven.apache.org/download.cgi 解压到本地文件夹新建环境变量 MAVEN_HOME maven解压目录在path加入 %MAVEN_HOME%/bin;需要确保已经有Java环境变量 (打开cmd java -version,javac -version两个命令看正常不)一、导出到默认目…

asp.net 分布式应用开发

Net Framework推出的许多新技术为上述任务的实现提供了相对简单的解决方案。其中,基于SOAP的Web Service在处理分布式应用时具有比传统的DCOM/CORBA明显的优点,结合基于Web的ASP.NET页面开发技术和SQL Server数据存储技术(或Xml文档&#xff…

C语言开发笔记(三)自加和自减

看到一段代码&#xff0c;被坑了。 #include <stdio.h>int main(void) {int a 7;printf("%d\n", a);printf("%d\n", a--);printf("%d\n", -a);printf("%d\n", -a--);printf("%d\n", a);return 0; } 结果为 -a的逻辑…

python语言属于哪一种语言_Python与Java:你应该学习哪种语言,他们有什么区别?...

在企业招聘中&#xff0c; Python和Java经常是需求最大的编程语言。这两种编程功能强大&#xff0c;灵活且面向对象的语言&#xff0c;通常在组织中和各种其他设置中使用。这可能会导致我们提出一个不可避免的问题&#xff1a;哪个更好&#xff1f; 这是一个复杂的问题&#xf…

关于手机端CSS Sprite图标定位的一些领悟

今天在某个群里面闲逛&#xff0c;看见一个童鞋分享了一个携程的移动端的页面。地址这里我也分享下吧&#xff1a;http://m.ctrip.com/html5/在手机端我都很少用雪碧图合并定位图标&#xff0c;用的比较多就是用字体图标来代替&#xff0c;有些图标不多的时候就自己单个的切出来…

c语言程序源代码_程序的编译、链接和执行

同学们总是抱怨每次见到一道面试题都很难把它转化为程序源代码。然而不幸的是&#xff0c;即使是程序源代码对于计算机来说也还是太高级了。要想让计算机执行一段程序&#xff0c;我们必须把它翻译成最底层的机器指令才行。这其中要经历很多步骤。幸运的是有很多现成的工具可以…

【程序员眼中的统计学(1)】信息图形化:第一印象

信息图形化&#xff1a;第一印象 作者 白宁超 2015年10月13日23:23:13 摘要&#xff1a;程序员眼中的统计学系列是作者和团队共同学习笔记的整理。首先提到统计学&#xff0c;很多人认为是经济学或者数学的专利&#xff0c;与计算机并没有交集。诚然在传统学科中&#xff0c;其…