STMCU小助手
发布时间:2022-3-19 20:18
|
STM32F103单片机中定时器分为3种,高级定时器、通用定时器、基本定时器。 通用定时器是一个通过可编程预分频器驱动的16位自动装载计数器构成。它适用于多种场合,包括测量输入信号的脉冲长度(输入捕获)或者产生输出波形(输出比较和PWM)。使用定时器预分频器和RCC时钟控制器预分频器,脉冲长度和波形周期可以在几个微秒到几个毫秒间调整。每个定时器都是完全独立的,没有互相共享任何资源。它们可以一起同步操作。 通用TIMx (TIM2、TIM3、TIM4和TIM5)定时器功能包括: 16位向上、向下、向上/向下自动装载计数器 16位可编程(可以实时修改)预分频器,计数器时钟频率的分频系数为1~65536之间的任意数值 4个独立通道: 输入捕获 输出比较 PWM生成(边缘或中间对齐模式) 单脉冲模式输出 使用外部信号控制定时器和定时器互连的同步电路 如下事件发生时产生中断/DMA: 更新:计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部/外部触发) 触发事件(计数器启动、停止、初始化或者由内部/外部触发计数) 输入捕获 输出比较 支持针对定位的增量(正交)编码器和霍尔传感器电路 触发输入作为外部时钟或者按周期的电流管理 可编程通用定时器的主要部分是一个16位计数器和与其相关的自动装载寄存器。这个计数器可以向上计数、向下计数或者向上向下双向计数。此计数器时钟由预分频器分频得到。计数器、自动装载寄存器和预分频器寄存器可以由软件读写,在计数器运行时仍可以读写。
这里使用的是定时器3,在初始化时传递了两个参数,其中arr用来设置定时器的周期,PSC设置时钟的分频系数。默认定时器的时钟频率为72MHz,所以带入这两个参数后,定时器的周期计算公式为: (arr+1)*(psc+1)/72MHz,设置定时器的计数模式为向上计数。这里开启了定时器的中断功能,所以还需要设置NVIC寄存器,也就是设置定时器的中断优先级。定时器初始化完成之后,还需要提供一个定时器的中断函数,当定时器定时时间到了以后,就会自动跳转到定时器中断函数中。
在主函数中初始化定时器,设置定时器分频数为71,默认的晶振频率为72MHz,进行71+1分频后的频率值为1Mhz,然后设置定时器的周期值为9+1,所以定时器的定时频率为1Mhz/(9+1)=100KHz,定时周期为10us。通过示波器观察LED管脚的电平,就可以看到LED管脚的电平每10us就会翻转一次。 |
【福利三:雨露均沾·逢7狂欢】之五:STM32系统时钟PLL故障排除1例
【福利三:雨露均沾·逢7狂欢】之三:AI帮我查BUG
福利三:雨露均沾·逢7狂欢】之二:STM32F407VG串口通信乱码故障的排除
基于STM32F103的I2C主从机通信
OpenBLT移植到STM32F103战舰开发板上适用于所有STM32F103系列的Bootloader
TFT LCD 与 FSMC 的硬件连接大容量 STM32F10xxx FSMC 接口
单片机:初学者该了解的STM32F103基础知识
2025软件工具兔哥知道
STM32之继电器模块
STM32固件库分享,超全系列整理
微信公众号
手机版