stm32f103zet6定时器详解及应用

发布者:RadiantExplorer最新更新时间:2023-09-18 来源: elecfans关键字:stm32f103zet6  定时器  配置 手机看文章 扫描二维码
随时随地手机看文章

  1、stm32f103zet6芯片及引脚图

  

 

  2、stm32f103xx器件功能与配置

  stm32f103zet6定时器详解及应用

  3、stm32f103zet6 定时器

  大容量的STM32F103XX增强型系列产品包含最多2个高级控制定时器、4个普通定时器和2个基本定时器,以及2个看门狗定时器和1个系统嘀嗒定时器。

  下表比较了高级控制定时器、普通定时器和基本定时器的功能:

  定时器功能比较

  stm32f103zet6定时器详解及应用

  1)计数器三种计数模式

  向上计数模式:从0开始,计到arr预设值,产生溢出事件,返回重新计时

  向下计数模式:从arr预设值开始,计到0,产生溢出事件,返回重新计时

  中央对齐模式:从0开始向上计数,计到arr产生溢出事件,然后向下计数,计数到1以后,又产生溢出,然后再从0开始向上计数。(此种技术方法也可叫向上/向下计数)

  2)高级控制定时器(TIM1和TIM8)

  两个高级控制定时器(TIM1和TIM8)可以被看成是分配到6个通的三三相PWM发生器,它具有带死区插入的互补PWM输出,还可以被当成完整的通用定时器。四个独立的通道可以用于:

  (1)输入捕获

  (2)输出比较

  (3)产生PWM(边缘或中心对齐模式)

  (4)单脉冲输出

  配置为16位标准定时器时,它与TIMX定时器具有相同的功能。配置为16位PWM发生器时,它具有全调制能力(0~100%)。在调试模式下,计数器可以被冻结,同时PWM输出被禁止,从而切断由这些输出所控制的开关。很多功能都与标准的TIM定时器相同,内部结构也相同,因此高级控制定时器可以通过定时器链接功能与TIM定时器协同操作,提供步或事件链接功能。

  3)通用定时器(TlMx)

  STM32F103XC、STM32F103XD和STM32F103XE增强型系列产品中,内置了多达4 个可同步运行的标准定时器(TIM2、TIM3、TIM4和TIM5)。每个定时器都有一个16位的自动加载递加/递减计数器、一个16位的预分频器和4个独立的通道,每个通道都可用于输入捕获、输出比较、PWM和单脉冲模式输出,在最大的封装配置中可提供最多16个输入捕获、输出比较或PWM通道。它们还能通过定时器链接功能与高级控制定时器共同工作,提供同步或事件链接功能。在调试模式下,计数器可以被冻结。任一标准定时器都能用于产生:PWM输出。每个定时器都有独立的DMA请求机制。

  这些定时器还能够处理增量编码器的信号,也能处理1至3个霍尔传感器的数字输出。

  4)基本定时器-TlM6和TIM7

  这2个定时器主要是用于产生:DAC触发信号,也可当成通用的16位时基计数器。独立看门 狗独立的看门狗是基于一个12位的递减计数器和一个8位的预分频器,它由一个内部独立的40kHz的RC振荡器提供时钟; 因为这个RC振荡器独立于主时钟,所以它可运行于停机和待机模式。它可以被当成看门狗用于在发生问题时复位整个系统,或作为一个自由定时器为应用程序提供超时管理。通过选项字节可以配置成是软件或硬件启动看门狗。在调试模式下,计数器可以被冻结。

  5)窗口看门狗

  窗口看门狗内有一个7位的递减计数器,并可以设置成自由运行。它可以被当成看门狗用于在发生问题时复位整个系统。它由主时钟驱动,具有早期预警中断功能; 在调试模式下,计数器可以被冻结。

  6)系统时基定时器

  这个定时器是专用于实时操作系统,也可当成一个标准的递减计数器。它具有下述特性:

  (1)24位的递减计数器

  (2)自动重加载功能

  (3)当计数器为0时能产生一个可屏蔽系统中断

  (4)可编程时钟源

  7)通用定时器的时钟来源;

  a:内部时钟(CK_INT)

  b:外部时钟模式1:外部输入脚(TIx)

  c:外部时钟模式2:外部触发输入(ETR)

  d:内部触发输入(ITRx):使用一个定时器作为另一个定时器的预分频器

  8)通用定时期内部时钟的产生:

  从截图可以看到通用定时器(TIM2-7)的时钟不是直接来自APB1,而是通过APB1的预分频器以后才到达定时器模块。

  当APB1的预分频器系数为1时,这个倍频器就不起作用了,定时器的时钟频率等于APB1的频率;

  当APB1的预分频系数为其它数值(即预分频系数为2、4、8或16)时,这个倍频器起作用,定时器的时钟频率等于APB1时钟频率的两倍。


关键字:stm32f103zet6  定时器  配置 引用地址:stm32f103zet6定时器详解及应用

上一篇:STM32看门狗WWDG和IWDG的区别是什么
下一篇:采用STM32嵌入式语音识别电路模块设计

推荐阅读最新更新时间:2024-11-13 10:49

不用定时器和汇编语言,只用C语言实现精确无误的延时
对于51定时器,却是有点少,有时候不经意间就被用完了,而实现定时又TM神坑了!一般的解决方案有直接上汇编,一条语句的执行时间就是一个机器周期,所以多写几个就实现了完美的定时功能。可是可是……..又有多少学51的会汇编呢?呵呵哒 所以来分享一个神好用的方法,C语言的while和nop结合使用实现精确延时 上调试代码: #include #include #define TIME 164//此处是需要不断调节的改变时间的数值 //164是少4个机器周期,165是多了2个机器周期 /* ∵晶振=12MHz ∴一条指令用时=1/(12/12)=10^(-6)s=1us */ //想办法补偿,而不是减少 void del
[单片机]
不用<font color='red'>定时器</font>和汇编语言,只用C语言实现精确无误的延时
RS-485网络配置
1、网络节点数   网络节点数与所选RS-485芯片驱动能力和接收器的输入阻抗有关,如75LBC184标称最大值为64点,SP485R 标称最大值为400点。实际使用时,因线缆长度、线径、网络分布、传输速率不同,实际节点数均达不到理论 值。例如75LBC184运用在500m分布的RS-485网络上节点数超过50或速率大于9.6kb/s时,工作可靠性明显下降。 通常推荐节点数按RS-485芯片最大值的70%选取,传输速率在1200~9600b/s之间选取。通信距离1km以内,从通 信效率、节点数、通信距离等综合考虑选用4800b/s最佳。通信距离1km以上时,应考虑通过增加中继模块或降 低速率的方法提高数据传输可靠性。 2、节点与主干
[嵌入式]
STM32——高级定时器的应用
/定时器1的配置 输出两路PWM信号 PA8 PA11,计数时钟为400KHZ 计数溢出大小为40000 / void Tim1Init(void) { GPIO_InitTypeDef GPIO_InitStruct; TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct; TIM_OCInitTypeDef TIM_OCInitStruct; u16 LeftMotor_CCR; u16 RightMotor_CCR; RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1|RCC_APB2Periph_GPIOA|RCC_APB2P
[单片机]
Qemu Mini2440 的 Linux Fedora 下网络配置
最近应朋友的要求,研究一下QEMU MINI2440下的仿真。本来我以为这个过程没什么的,这一研究还真发现不少问题,写出来与大家分享。 我使用的系统环境: 1.使用VMware 6.5,宿主机使用 win 7 2.VMWare 6.5上的系统是 Linux Fedora 8 3.RTEMS 的编译环境 4.9 首先我从以下网站获取源代码: 1.获取QEMU的源代码:git clone git://repo.or.cz/qemu/mini2440.git qemu 2.获取UBOOT的源代码git clone git://repo.or.cz/u-boot-openmoko/mini2440.git uboot
[单片机]
Qemu Mini2440 的 Linux Fedora 下网络<font color='red'>配置</font>
STM32F0 定时器触发ADC,多通道采样、DMA传输数据的配置
本块代码实现了定时器定时触发ADC,多通道采样,并通过DMA进行数据传输到内存的操作。 #include adc.h view plain copy #define DMA_BUFFER_SIZE 6 uint8 sample_finish = 0; int16 adc_dma_tab = { 0 }; uint8 sample_index = 0; //采样点数据 int16 sample_1 = { 0 }; int16 sample_2 = { 0 }; int16 sample_3 = { 0 }; int16 sample_4 = { 0 }; int16 sample_5 = { 0
[单片机]
AVR128的程序——定时器
#include iom128v.h #include macros.h #define uchar unsigned char #define uint unsigned int void timer1_init(void); uchar temp=0x01; void main(void) { uchar i,temp; DDRA = 0XFF; PORTA = 0XFF; DDRC = 0XFF; PORTC = 0XFF; DDRF |= 0X0E; PORTF |=
[单片机]
51单片机——定时器/计数器
1.概述 8051单片机内部有T0和T1两个定时器/计数器。它们既可用作定时器,也可用作计数器,可以通过编程来设置其使用方法。 2.定时器/计数器 2.1 定时功能 2.2.1 定时功能的用法 当定时器/计数器用作定时器时,可以用来计算时间。如果要求单片机在一定的时间后产生某种控制,可将定时器/计数器设为定时器。单片机定时器/计数器的定时功能用法如图1所示。 图1 定时器/计数器的定时功能用法 要将定时器/计数器 T0设为定时器,实际上就是将定时器/计数器与外部输入断开,而与内部信号接通,对内部信号计数来定时。单片机的时钟振荡器可产生12MHz的时钟脉冲信号,经12分频后得到1MHz的脉冲信号
[单片机]
51单片机——<font color='red'>定时器</font>/计数器
定时器控制数码管扫描显示
************************************************************************************ 功能:定时器控制两位数码管扫描显示 器件:STC12C5A32S2 两个数码管 ************************************************************************************/ #include config.h #define uint unsigned int #define uchar unsigned char #define ulong unsigned long int
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved