打印
[其他ST产品]

进不了中断,求大神指点

[复制链接]
577|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
probedog|  楼主 | 2023-7-26 10:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include "bsp_spwm_output.h"
uint16_t  CCR1_Val ;
uint16_t  CCR2_Val = 1500 ;
uint16_t  CCR3_Val = 900;
static void TIM1_Mode_Config(void)
{
   
  GPIO_InitTypeDef GPIO_InitStructure;
    TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
    TIM_OCInitTypeDef  TIM_OCInitStructure;

    /* GPIOA clocks enable */
    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);
    /* TIM1 clock enable */
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);

    GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_9 | GPIO_Pin_10;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
    GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
    GPIO_Init(GPIOA,&GPIO_InitStructure);

    /* Connect TIM pins to AF6 */
    GPIO_PinAFConfig(GPIOA, GPIO_PinSource8, GPIO_AF_6);
    GPIO_PinAFConfig(GPIOA, GPIO_PinSource9, GPIO_AF_6);
    GPIO_PinAFConfig(GPIOA, GPIO_PinSource10, GPIO_AF_6);

    /* Time Base configuration */
     
    TIM_TimeBaseStructure.TIM_Period =2999;      
  TIM_TimeBaseStructure.TIM_Prescaler = 0;
  TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;    //ÉèÖÃÔ¤·ÖƵ£º²»Ô¤·ÖƵ£¬¼´Îª72MHz
  TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;    //ÉèÖÃʱÖÓ·ÖƵϵÊý£º²»·ÖƵ(ÕâÀïÓò»µ½)
  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_CenterAligned1;  //ÏòÉϼÆÊýģʽ
  TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);

  /*PWM1 Mode configuration: Channel1 */
  TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;        //ÅäÖÃΪPWMģʽ1
  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;   
  TIM_OCInitStructure.TIM_Pulse = CCR2_Val;       //ÉèÖÃÌø±äÖµ£¬µ±¼ÆÊýÆ÷¼ÆÊýµ½Õâ¸öֵʱ£¬µçƽ·¢ÉúÌø±ä
  TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;  //µ±¶¨Ê±Æ÷¼ÆÊýֵСÓÚCCR1_ValʱΪ¸ßµçƽ
    TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_High;      
    TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set;     
    TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCNIdleState_Set;  

  TIM_OC2Init(TIM1, &TIM_OCInitStructure);     //ʹÄÜͨµÀ1
  TIM_OC2PreloadConfig(TIM1, TIM_OCPreload_Enable);
  TIM_ARRPreloadConfig( TIM1,ENABLE);
   
    TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;   
  TIM_OCInitStructure.TIM_Pulse = CCR3_Val;   
  TIM_OC3Init(TIM1, &TIM_OCInitStructure);     //ʹÄÜͨµÀ4
  TIM_OC3PreloadConfig(TIM1, TIM_OCPreload_Enable);
  TIM_ARRPreloadConfig( TIM1,ENABLE);
   
  TIM_ARRPreloadConfig( TIM1,ENABLE);
    TIM_UpdateRequestConfig( TIM1, TIM_UpdateSource_Regular);
  TIM_ITConfig(TIM1,TIM_IT_Update | TIM_IT_Trigger,ENABLE);/* TIM3 enable counter */
  TIM_Cmd(TIM1, ENABLE);     //ʹÄܶ¨Ê±Æ÷3   
    TIM_ClearFlag(TIM1, TIM_FLAG_Update);
    TIM_CtrlPWMOutputs(TIM1, ENABLE);
}

     void NVIC_Configuration(void)
{
  NVIC_InitTypeDef NVIC_InitStructure;
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
  NVIC_InitStructure.NVIC_IRQChannel = TIM1_CC_IRQn;   //TIM1ÖжÏ
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 6;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;  
  NVIC_Init(&NVIC_InitStructure);      
}         

void TIM1_SPWM_Init(void)
{
     TIM1_Mode_Config();
     NVIC_Configuration();
} // /*****/     

使用特权

评论回复
沙发
gejigeji521| | 2023-7-27 23:10 | 只看该作者
怎么还在用老库

使用特权

评论回复
板凳
温室雏菊| | 2023-8-12 17:08 | 只看该作者
你用官方的例程试试,也许会好使

使用特权

评论回复
地板
故意相遇| | 2023-8-12 19:23 | 只看该作者
你想要实现定时器的输出啊?

使用特权

评论回复
5
白马过平川| | 2023-8-12 21:45 | 只看该作者
用仿真器的方式看看程序咋运行的呗

使用特权

评论回复
6
风凉| | 2023-8-12 22:12 | 只看该作者
这看着没啥问题啊,你用的还是官方的例程吧,是吧

使用特权

评论回复
7
MessageRing| | 2023-8-12 23:33 | 只看该作者

可能是老产品传下来的

使用特权

评论回复
8
西洲| | 2023-8-13 01:12 | 只看该作者
是编译报错,还是程序运行的逻辑不对啊?

使用特权

评论回复
9
捧一束彼岸花| | 2023-8-13 03:12 | 只看该作者
定时器一般得配置一下才行吧?

使用特权

评论回复
10
春日负喧| | 2023-8-13 05:13 | 只看该作者
建议楼主还是用个例程,参考例程去写和实现吧

使用特权

评论回复
11
将爱藏于深海| | 2023-8-13 11:12 | 只看该作者
用示波器抓波形看看

使用特权

评论回复
12
她已醉| | 2023-8-13 14:22 | 只看该作者
感觉进不来中断是不是哪个变量没变化导致的呢

使用特权

评论回复
13
月亮一键变蓝| | 2023-8-13 16:13 | 只看该作者
你的复用时钟没开吧,AFIO这个

使用特权

评论回复
14
Mowergy| | 2023-10-21 16:09 | 只看该作者
用官方的例程试试

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

376

主题

2009

帖子

3

粉丝