STM32F103正点原子学习笔记系列——通用定时器

如题所述

通用定时器简介
通用定时器包括TIM2、TIM3、TIM4、TIM5,主要特性有:16位递增、递减、中心对齐计数器(范围为0~65535),16位预分频器(分频系数为1~65536),可触发DAC与ADC(基础定时器仅支持DAC)。通用定时器支持更新事件、触发时间、输入捕获、输出比较时产生中断或DMA请求。共有4个独立通道,用于输入捕获、输出比较、输出PWM、单脉冲,支持外部信号控制定时器及实现多个定时器互连的同步电路,支持编码器和霍尔传感器电路。

通用定时器框图

流程概览,后续详细讲解,笔记未详细记录。

计数器时钟源

设置计数器时钟源寄存器,选择时钟源。外部时钟模式1下,触发选择由TS[2:0]决定,如100为CH1双边沿触发,101为CH1上升/下降沿触发,110为CH2上升/下降沿触发。输入捕获滤波由ICF[3:0]控制,采样频率取决于TIMx_CR1的设置,当N个信号一样时,输出该信号。边沿检测由CC2P决定,作用类似于CC1P。

外部时钟模式2

外部触发极性设置在ETP,外部触发预分频在ETPS[1:0],滤波器设置在ETF[3:0]。

使用定时器作为预分频器

通过一个定时器作为另一个定时器的预分频器,实现频率调整。

通用定时器中断实验

与基础定时器的区别在于中断和DMA请求的触发机制。

通用定时器PWM输出实验

PWM输出实验框图展示了PWM输出的主电路和捕获/比较通道的电路。PWM原理是周期由ARR决定,而CRRx决定了占空比大小。PWM模式通过TIMx_CCMR寄存器控制,设置OCxM[2:0]为110或111进入PWM模式。PWM输出实验配置包含初始化定时器参数,如预分频系数、自动重装载值等,并设置输出比较模式。

相关HAL库函数和关键结构体

实验中主要使用TIM_HandleTypeDef句柄设置定时器参数,关键结构体包括ARR、PSC、CRRx等,用于控制PWM输出的频率、占空比和输出模式。

编程实战

通过定时器控制LED实现类似呼吸灯效果,设置时钟频率为72MHz,输出频率为2kHz。初始化定时器参数,配置输出比较模式为PWM模式,设置比较值和比较极性。在初始化函数中配置定时器参数,完成PWM输出配置,启动定时器,编写中断服务函数处理PWM输出。

通用定时器输入捕获实验

输入捕获实验框图介绍了捕获/比较通道的输入和输出部分。捕获/比较通道的输入部分包括采样频率、滤波方式和边沿检测方式的寄存器配置。输入通道映射、捕获分频和捕获使能等操作也是关键步骤。配置完成后,编写初始化函数和中断服务函数,实现输入捕获功能。

通用定时器脉冲计数实验

脉冲计数实验采用外部时钟模式1,选择输入通道并配置输入捕获滤波和边沿检测。配置完成后,在初始化函数中完成脉冲计数器的配置,编写中断服务函数处理计数器的溢出事件。在主函数中实现逻辑代码,串口打印脉冲计数结果。
温馨提示:内容为网友见解,仅供参考
无其他回答

STM32F103正点原子学习笔记系列——通用定时器
通用定时器包括TIM2、TIM3、TIM4、TIM5,主要特性有:16位递增、递减、中心对齐计数器(范围为0~65535),16位预分频器(分频系数为1~65536),可触发DAC与ADC(基础定时器仅支持DAC)。通用定时器支持更新事件、触发时间、输入捕获、输出比较时产生中断或DMA请求。共有4个独立通道,用于输入捕获、输出...

STM32F103正点原子学习笔记系列——基础定时器
STM32定时器分为基本、通用和高级三种类型,基本定时器如TIM6、TIM7,具备16位递增计数器、16位预分频器等特性。基本定时器的更新事件可以触发中断或DMA请求,影子寄存器确保在更新事件产生时值被更新。设置预分频系数、计数器溢出值等参数控制定时器的计数模式与溢出条件。定时器中断相关寄存器如控制寄存器、...

STM32F103正点原子学习笔记系列——高级定时器
高级定时器输出指定个数PWM实验通过设置重复计数器RCR实现。除最后一个PWM输出外,其余PWM输出仅需配置RCR值,更新事件会在RCR+1次溢出时触发。高级定时器输出指定个数PWM实验原理:确保在进行PWM输出时,将MOE(输出使能)设置为1,并在TIMx_BDTR寄存器中配置互补输出功能。在初始化函数中调用相关HAL库函...

STM32F103正点原子学习笔记系列——低功耗
1. 睡眠模式 2. 停止模式 3. 待机模式 低功耗模式表列出了在不同模式下的功耗值。通常使用立即睡眠模式(WFI指令)。F1系列中,停止模式仅具有RTC闹钟功能。三种模式在25摄氏度,3.3伏电压,72兆赫兹下的功耗值如下:正常模式下的功耗为51毫安;睡眠模式下的功耗为29.5毫安;停止模式下的功耗为35...

STM32F103正点原子学习笔记系列——FLASH模拟EEPROM
STM32内部FLASH存储器在嵌入式系统中起着关键作用,主要负责存储程序代码。例如在STM32F103ZET6芯片上,其FLASH存储器容量为512KB,SRAM为64KB,主频可达72MHz。内部FLASH结构主要包含主存储器、信息块以及闪存存储器接口寄存器三个部分。主存储器覆盖从0x08000000到0x0807FFFF的地址范围,被划分为256页,...

STM32F103正点原子学习笔记系列——内存管理
所以,正点原子自己写了分块式的内存管理!(现在学了FreeRTOS,学到lwIP的内存管理,才回来看这节课确实有点晚了,不过大概了解一下问题也不大)。分块式内存管理 分块式内存管理由内存池和内存管理表两部分组成。内存池被等分为n块,对应的内存管理表,大小也为n,内存管理表的每一个项对应内存池...

STM32F103正点原子学习笔记系列——串口
STM32的USART(通用同步异步收发器)可以与外部设备进行全双工异步通信,其主要特征包括数据寄存器(DR)、波特率部分、波特率寄存器(BRR)等。在进行读写操作时,只能操作数据寄存器。USART的波特率部分依赖于挂载在哪个时钟总线上,如APB1或APB2。在设置波特率时,需要计算USARTDIV的值,该值取决于挂载的...

STM32F103正点原子学习笔记系列——USMART
STM32F103 USMART深度探索:提升调试效率的神器USMART,作为一款强大的串口调试组件,其高效性和灵活性为开发者带来了显著的调试效率提升。这款组件的独特之处在于,它可以直接通过串口调用用户自定义的函数,实时修改参数,占用资源极其节省——只需最少4KB的FLASH存储空间,以及72B的SRAM支持。USMART的强大...

STM32F103正点原子学习笔记系列——OLED
OLED是有机发光二极管,用于显示屏,通电后即可发光。正点原子提供的0.96英寸OLED模块具有升压电路、128*64分辨率及SSD1306驱动IC,支持8位并口、8位8080、4线SPI、IIC等接口,工作电压3.3V。OLED模块的引脚包括:CS(片选信号)、WR(写入数据)、RD(读取数据)、D[7:0](8位双向数据线)、RST(...

STM32F103正点原子学习笔记系列——SPI
SPI控制寄存器1允许配置SPI的工作模式,包括设置主从设备、双向数据传输、NSS管理、数据帧格式、波特率以及CPOL和CPHA。同时,SPI状态寄存器(SPI_SR)用于监测发送和接收缓冲状态,数据寄存器(SPI_DR)则用于数据的读写操作。NOR FLASH是常用的存储器,具有大容量、可重复擦写和掉电保存等特性,分为NOR和NAND...

相似回答
大家正在搜