打开STM32数据手册中的总体框图。娘的,又TMD一阵眼花缭乱。
首先,我们可以看到这个图大概有两个不分,一个部分是时钟源,另一个部分则是输入输出时钟源计数,到CNT计数器,然后根据捕获比较寄存器进行记录或比较。记录或比较有不同的配置。
首先是TI信号
TI1 TI2 TI3 TI4:这个信号就是外部信号,是直接与管脚相连的信号,图中还有一个问题就是TI1是可以是第一通道的外部信号进行触发,也可以设置为,第一通道,第二通道,第三通道异或进行触发。外部信号送往滤波器和边沿检测器。
TIxFP触发有效信号。
TI1FP1 TI1FP2TI2FP1 TI2FP2 TI3FP3 TI3FP4TI4FP3 TI4FP4:这个就是一个触发有效信号,由于与管脚直连的信号可以被设置为高低边沿触发,所以通过设置后,TIxFP就是对应这个信号是否有效的标致。
ICx映射信号
IC1 IC2 IC3 IC4:通道有效信号,在他的前面是TIxFP和TRC信号,可以看出,TI1FP与TI2FP可以互相对应IC1和IC2,TI3FP和TI4FP可以互相对应IC3和IC4,这样的话,就可以使一个TIxFP信号对应两个ICx也就是对应两个通道。这样的话,就可以实现PWM输入了,可以由1个来计算周期,另一个来计算占空比。ICx信号被送入预分频器
通道中断和DMA输出信号
CC1I CC2I CC3I CC4I:ICx信号经过预分频器后即可通过配置产生中断或DMA输出。
预分频计数信号
IC1PS IC2PS IC3PS IC4PS::ICx信号经过预分频器后即可以进入CCRx计数寄存器了,此时可配合中断对CCR读取。
OC1REF输出有效信号
OC1REF OC2REF OC3REF OC4REF:当比较输出或PWM输出时第一个输出的信号。这个信号经过配置高低电平,才能变成输出到管脚
的有效电平的。
比较输出PWM输出电平
OC1 OC1N OC2 OC2N OC3 OC3N OC4:输出到管脚的信号
刹车输入管脚信号
BRK刹车输入管脚信号,引脚输入后进入极性选择。
刹车信号
BI:刹车信号,通过极性选择的信号与时钟失效信号相或后,得出刹车有效信号。来驱动刹车。
更新时间
u更新事件信号,由软件事件寄存器或计数器溢出产生。
事件更新中断
UI:事件更新中断信号
外部ETR触发脚信号
ETR:与外部管脚相连的触发定时器专用触发脚
边沿预分频后ETR信号
ETRP:边沿预分频后ETR信号
经过滤波后的ETR有效信号
ETRF:ETRP经过滤波,极性,边沿后的有效信号
内部触发ITRx通道信号
ITR0 ITR1 ITR2 ITR3 :触发可由内部其他定时器产生信号,且定时器1和定时器8的定时器触发不同。在数据手册中的定时器章表74有体现
ITR触发信号
ITRx经过设置,产生触发信号。进入下一个环节。
TI1的边沿检测器
TI1F_ED:TI1的边沿检信号,在霍尔传感器模式下,会检测TI1的变化,从输入是TI1F_ED。每当3个输入之一变化时,计数器从新从0开始计数。这样产生一个由霍尔输入端的任何变化而触发的时间基准。
TRC:通过选择器选择TI1边沿与内部触发后,发出的触发信号。
TRGI:最终的触发输入。
TGI:触发输入中断位
TRGO:触发输出。作为主模式去发出控制其他定时器的触发信号,应该与其他定时器的ITRx相连。
关键字:STM32 数据手册 定时器信号
引用地址:
关于STM32数据手册中的定时器信号
推荐阅读最新更新时间:2024-11-08 13:43
STM32启动文件原理分析
当前的嵌入式应用程序开发过程里,并且C语言成为了绝大部分场合的最佳选择。如此一来main函数似乎成为了理所当然的起点——因为C程序往往从main函数开始执行。但一个经常会被忽略的问题是:微控制器(单片机)上电后,是如何寻找到并执行main函数的呢?很显然微控制器无法从硬件上定位main函数的入口地址,因为使用C语言作为开发语言后,变量/函数的地址便由编译器在编译时自行分配,这样一来main函数的入口地址在微控制器的内部存储空间中不再是绝对不变的。相信读者都可以回答这个问题,答案也许大同小异,但肯定都有个关键词,叫“启动文件”,用英文单词来描述是“Bootloader”。 无论性能高下,结构简繁,价格贵贱,每一种微控制器(处理器)都
[单片机]
STM32 SysTick 系统时钟 超简易定时器SysTick
/** * @brief Configures the SysTick. 系统时钟配置函数 main.c * @param None * @retval None */ void SysTick_Configuration(void) { /* Setup SysTick Timer for 100 msec interrupts */ if (SysTick_Config((SystemCoreClock) / 10)) // 1/10s=100ms { /* Capture error */ while (1); } NVIC_SetPriority(SysTick_IRQn, 0x0); } /**
[单片机]
STM32串口通信校验问题
这里以串口作为传输媒介,介绍下怎样来发送接收一个完整的数据包。过程涉及到封包与解包。设计一个良好的包传输机制很有利于数据传输的稳定性以及正确性。串口只是一种传输媒介,这种包机制同时也可以用于SPI,I2C的总线下的数据传输。在单片机通信系统(多机通信以及PC与单片机通信)中,是很常见的问题。 一、根据帧头帧尾或者帧长检测一个数据帧 1、帧头+数据+校验+帧尾 这是一个典型的方案,但是对帧头与帧尾在设计的时候都要注意,也就是说帧头、帧尾不能在所传输的数据域中出现,一旦出现可能就被误判。如果用中断来接收的话,程序基本可以这么实现: unsigned char recstatu;//表示是否处于一个正在接收数据包的状态 unsign
[单片机]
STM32 SPI Flash DFU
这次讲的是将程序、图片或其他文件下载到SPI Flash中。我使用的是W25X16的SPI Flash,他共有2MB空间,2个Block,512ge Sector,8096个Page。由于SPI Flash不能直接跑程序,我们从接口就知道了。 接下去我们就来讲讲怎么编写SPI flash的升级功能。这次的工程是基于之前的Internal Flash修改而来的。修改的部分主要在USB_User组里: 我只将改改的部分。 hw_config.c、usb_istr.c、usb_prop.c、usb_pwr.c这介个文件没有什么还修改的。usb_desc.c文件需要修改下接口字符串描述符,由于我们的SPI Flash空间2M,所以我们将
[单片机]
RTOS为什么要搞两种API?
本文以FreeRTOS为例,如果我们自己在官网下载源码然后手动移植代码就是使用FreeRTOS的原生API接口,如果我们使用STM32CubeMX来配置工程就是使用的CMSIS-API接口,是对FreeRTOS的原生API接口进行了封装。 一、RTOS为什么要搞两种API? CMSIS-RTOS API是ARM公司为RTOS内核制定的一套通用接口协议,它提供了一套「标准的API接口」,可以移植到各种各样的RTOS上,使得上层的软件、中间件、库以及其他组件在不同的RTOS之上都可以正常工作。 简单的说就是:STM32是ARM内核的,这大家都知道。FreeRTOS是一种免费的开源的嵌入式操作系统。那它肯定就不属于ARM公司的对不对
[单片机]
关于STM32定时器触发SPI逐字收发之应用示例
我们在做SPI应用时,有时希望通过定时器来定时地触发SPI的收发,并利用DMA完成数据的传输。这里,以STM32L476芯片为例来做个演示,以供参考。 本示例的大致过程是这样的: 片内SPI1做Master,SPI2做Slave,均工作在全双工模式。 这里使用片内定时器TIM3,通过它的更新事件触发DMA请求,通过DMA将数据给到SPI1的数据寄存器并发送出去,同时也开启SPI1接收事件的DMA传输。总之,SPI2的收、发事件都启用DMA完成。 TIM3的更新事件周期控制两个SPI的收发节奏,即定时器每产生一次更新事件,SPI1/SPI2这两个主从通信模块就进行一个数据的收发。我们可以通过调整定时器的计时周期来调整
[单片机]
STM32开发 -- Keil使用(1)
一、keil主界面详解 打开一个工程文件,可以看到如下的界面: 下面我们就一一来介绍下。为了讲解专门找到一个keil汉化补丁。也是够够的了。 这里的汉化为了方便讲解,实际工作中建议还是用英文版本。 下载:keil 4汉化包 1、菜单栏 文件 其中需要注意的是 License Management,破解时需要在这里输入。 编辑 视图 工程 闪存 调试 外围设备(仿真) 工具 2、工具栏 文件操作 新建文件夹 Ctrl + N 打开文件 Ctrl + O 保存当前文件 Ctrl + S 保存所有文件 无 剪切 Ctrl + X 复制 Ctrl + C 粘贴 Ctrl + V
[单片机]
基于ZigBee和STM32的室内智能照明系统的设计
在人们的传统意识中,照明系统仅以照明为目的。传统的照明系统中主要的控制方式有手动控制方式和自动控制方式。其中手动控制方式简单、有效,但是过于依赖人工操作,并且控制相对分散,不能有效管理;自动控制方式主要是由时钟元件、光电元件或两者组合的方式来实现对照明设备的控制,这种控制方式减少了对人员的依赖性,管理相 对集中,实现了照明控制的自动化,但却不能对照明系统进行调光控制。 此外,随着生活水平的不断提高,人们对日常生活的无线化、网络化、智能化、节能化的需求越来越强烈,以上两种传统的照明控制系统已经无法满足人们对日常生活品质的需求。基于上述原因提出了一种基于ZigBee和STM32的室内智能照明系统的设计。 1 系统总体设计 本系
[电源管理]