[其他ST产品] HAL库—定时器Timer使用及PWM

[复制链接]
1534|33
 楼主| 有何不可0365 发表于 2023-10-28 23:39 | 显示全部楼层 |阅读模式
51单片机定时对比

51单片机的延时(软件定时):

  1. //由stc软件生成的51延时代码
  2. void Delay500ms() //@11.0592MHz
  3. {
  4. unsigned char i, j, k;
  5. _nop_();
  6. i = 4;
  7. j = 129;
  8. k = 119;
  9. do
  10. {
  11. do
  12. {
  13. while (--k);
  14. } while (--j);
  15. } while (--i);
  16. }


 楼主| 有何不可0365 发表于 2023-10-28 23:39 | 显示全部楼层
缺点:不精确、占用CPU资源
 楼主| 有何不可0365 发表于 2023-10-28 23:39 | 显示全部楼层
stm32定时器工作原理:
使用精准的时基,通过硬件的方式,实现定时功能。定时器核心就是计数器。
1145653d2b3acf9c2.png
 楼主| 有何不可0365 发表于 2023-10-28 23:39 | 显示全部楼层
定时器分类:
基本定时器(TIM6~TIM7)
通用定时器(TIM2~TIM5)
高级定时器(TIM1和TIM8)
 楼主| 有何不可0365 发表于 2023-10-28 23:39 | 显示全部楼层
 楼主| 有何不可0365 发表于 2023-10-28 23:40 | 显示全部楼层
STM32F103C8T6定时器资源:
85222653d2b5400130.png
 楼主| 有何不可0365 发表于 2023-10-28 23:40 | 显示全部楼层
通用定时器介绍:

16 位向上、向下、向上/向下自动装载计数器(TIMx_CNT)。
 楼主| 有何不可0365 发表于 2023-10-28 23:40 | 显示全部楼层
16 位可编程(可以实时修改)预分频器(TIMx_PSC),计数器时钟频率的分频系数为 1~65535 之间的
任意数值。
 楼主| 有何不可0365 发表于 2023-10-28 23:40 | 显示全部楼层
4 个独立通道(TIMx_CH1~4),这些通道可以用来作为:
A.输入捕获
B.输出比较
C.PWM 生成(边缘或中间对齐模式)
D.单脉冲模式输出
 楼主| 有何不可0365 发表于 2023-10-28 23:40 | 显示全部楼层
可使用外部信号(TIMx_ETR)控制定时器和定时器互连(可以用 1 个定时器控制另外一个定时器)
的同步电路。
 楼主| 有何不可0365 发表于 2023-10-28 23:40 | 显示全部楼层
如下事件发生时产生中断/DMA:
A.更新:计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部/外部触发)
B.触发事件(计数器启动、停止、初始化或者由内部/外部触发计数)
C.输入捕获
D.输出比较
E.支持针对定位的增量(正交)编码器和霍尔传感器电路
F.触发输入作为外部时钟或者按周期的电流管理
 楼主| 有何不可0365 发表于 2023-10-28 23:40 | 显示全部楼层
定时器计数模式:
8529653d2b86c7cb7.png
 楼主| 有何不可0365 发表于 2023-10-28 23:41 | 显示全部楼层
 楼主| 有何不可0365 发表于 2023-10-28 23:41 | 显示全部楼层
定时器时钟源:
58884653d2b984d7f3.png
 楼主| 有何不可0365 发表于 2023-10-28 23:41 | 显示全部楼层
定时器溢出时间计算公式:
72364653d2bab08f08.png
(PSC为分频系数)(ARR为重装载值)(Tout为输出时间(需要))(Tclk为时钟频率)
已知:Tclk = 72MHZ
例如,要定时1000ms,则:PSC=7199,ARR=9999,Tclk=72M
 楼主| 有何不可0365 发表于 2023-10-28 23:41 | 显示全部楼层
PWM资源
高级定时器(TIM1):7路
通用定时器(TIM2~TIM4):各4路
 楼主| 有何不可0365 发表于 2023-10-28 23:41 | 显示全部楼层
PWM输出模式:
PWM模式1:在向上计数时,一旦 CNT < CCRx 时输出为有效电平,否则为无效电平; 在向
下计数时,一旦 CNT > CCRx 时输出为无效电平,否则为有效电平。
 楼主| 有何不可0365 发表于 2023-10-28 23:42 | 显示全部楼层
PWM模式2:在向上计数时,一旦 CNT < CCRx 时输出为无效电平,否则为有效电平; 在向
下计数时,一旦 CNT > CCRx 时输出为有效电平,否则为无效电平。
 楼主| 有何不可0365 发表于 2023-10-28 23:42 | 显示全部楼层
 楼主| 有何不可0365 发表于 2023-10-28 23:42 | 显示全部楼层
PWM占空比:由TIMx_CCRx寄存器决定。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

45

主题

781

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部