[其他ST产品] STM32F4之TIMER定时器

[复制链接]
1349|17
 楼主| ead5ah 发表于 2023-8-20 23:20 | 显示全部楼层 |阅读模式
STM32定时器区别
1609164e22f47e5edf.png


时定器,复引用脚,功能,有着对应关系

例,void TIM5_Init(unsigned short arr,unsigned short psc)



 楼主| ead5ah 发表于 2023-8-20 23:21 | 显示全部楼层
定时器初始化配置
  1. //1、时钟使能
  2. RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM5,ENABLE);

  3. //2、定时器初始化配置 配置定时间隔
  4. TIM_TimeBaseInitTypeDef  TIM_TimeBaseInitStructure;

  5. TIM_TimeBaseInitStructure.TIM_ClockDivision=TIM_CKD_DIV1;     //时钟分频因子
  6. TIM_TimeBaseInitStructure.TIM_CounterMode=TIM_CounterMode_Up; //向上计数模式
  7. TIM_TimeBaseInitStructure.TIM_Period = arr;  //自动重装载值
  8. TIM_TimeBaseInitStructure.TIM_Prescaler=psc; //定时器分频
  9. TIM_TimeBaseInit(TIM5,&TIM_TimeBaseInitStructure);    //初始化TIM5
 楼主| ead5ah 发表于 2023-8-20 23:23 | 显示全部楼层
PWM 脉冲输出配置
1)引脚初始化配置
  1. //1)引脚初始化配置
  2. RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);      //GPIOx 时钟使能
  3. GPIO_PinAFConfig(GPIOA,GPIO_PinSource0,GPIO_AF_TIM5);     //GPIOx_x复用为定时器x

  4. GPIO_InitTypeDef     GPIO_InitStructure;

  5. GPIO_InitStructure.GPIO_Pin     = GPIO_Pin_0;           //GPIOA_x
  6. GPIO_InitStructure.GPIO_Mode    = GPIO_Mode_AF;         //复用功能
  7. GPIO_InitStructure.GPIO_Speed   = GPIO_Speed_100MHz;    //速度100MHz
  8. GPIO_InitStructure.GPIO_OType   = GPIO_OType_PP;        //推挽复用输出
  9. GPIO_InitStructure.GPIO_PuPd    = GPIO_PuPd_UP;         //上拉
  10. GPIO_Init(GPIOA, &GPIO_InitStructure);
 楼主| ead5ah 发表于 2023-8-20 23:24 | 显示全部楼层
定时器模式初始化配置 PWM模式
  1. //2)定时器模式初始化配置 PWM模式

  2. TIM_OCInitTypeDef      TIM_OCInitStructure;
  3. //初始化TIMx Channelx PWM模式
  4. TIM_OCInitStructure.TIM_OCMode     = TIM_OCMode_PWM1;  //选择定时器模式:TIM脉冲宽度调制模式1
  5. TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //比较输出使能
  6. TIM_OCInitStructure.TIM_Pulse = (arr+1)*0.5;  //CCR 设置占空比
  7. TIM_OCInitStructure.TIM_OCPolarity     = TIM_OCPolarity_Low;//输出极性:TIM输出比较极性低
  8. TIM_OC1Init(TIM5, &TIM_OCInitStructure);//根据T指定的参数初始化外设TIMx OC1

  9. TIM_OC1PreloadConfig(TIM5, TIM_OCPreload_Enable);  //使能TIMx在CCR2上的预装载寄存器
  10. TIM_ARRPreloadConfig(TIM5, ENABLE);//ARPE使能
 楼主| ead5ah 发表于 2023-8-20 23:25 | 显示全部楼层
中断优先级初始化
若需要使用定时器中断函数,则进行 中断优先级初始化配置

  1. NVIC_InitTypeDef  NVIC_InitStructure;
  2. /* 设置中断管理 */
  3. NVIC_InitStructure.NVIC_IRQChannel=TIM5_IRQn; //定时器5中断
  4. NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0x01;     //抢占优先级1
  5. NVIC_InitStructure.NVIC_IRQChannelSubPriority=0x03;         //子优先级3
  6. NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
  7. NVIC_Init(&NVIC_InitStructure);  

  8. TIM_ITConfig(TIM5,TIM_IT_Update,ENABLE);//使能TIM5的更新中断
 楼主| ead5ah 发表于 2023-8-20 23:26 | 显示全部楼层
使能定时器
TIM_Cmd(TIM5,ENABLE); //使能定时器
 楼主| ead5ah 发表于 2023-8-20 23:27 | 显示全部楼层
定时器中断服务函数
若需要使用定时器中断函数,则添加 定时器中断服务函数

  1. void TIM5_IRQHandler(void)
  2. {
  3.         if(TIM_GetITStatus(TIM5, TIM_IT_Update) == SET)
  4.         {
  5.         //DO
  6.         }
  7.         TIM_ClearITPendingBit(TIM5, TIM_IT_Update);
  8. }
 楼主| ead5ah 发表于 2023-8-20 23:27 | 显示全部楼层
初始化定时器参数
TIM5_Init(100-1,840-1); //1ms
Uriah 发表于 2024-1-15 12:28 | 显示全部楼层
Clyde011 发表于 2024-1-15 12:38 | 显示全部楼层
公羊子丹 发表于 2024-5-16 09:17 | 显示全部楼层

环氧树脂由于硬度的原因不能用于应力敏感和含有贴片元件的模块灌封,在模块电源中基本被淘汰
万图 发表于 2024-5-16 10:20 | 显示全部楼层

直至电感器饱和,使开关器件烧毁。好的元器件就到唯样商城。图中的D3与N3构成的磁通复位电路,提供了泄放多余磁能的渠道
帛灿灿 发表于 2024-5-16 13:19 | 显示全部楼层

测试参数包括电源的输出电压、输出电流、负载能力、压降、效率和输出波形
周半梅 发表于 2024-5-16 16:18 | 显示全部楼层

正激:脉冲变压器的原/副边相位关系
童雨竹 发表于 2024-5-16 19:17 | 显示全部楼层

大于1的定义为极高导热的性能,而对于模块电源此水平的导热系数是无法达到其散热功能的需求
您需要登录后才可以回帖 登录 | 注册

本版积分规则

27

主题

96

帖子

1

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