打印
[MM32软件]

用寄存器导致不能进入定时器中断

[复制链接]
1379|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
州滁387|  楼主 | 2022-1-14 08:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void TIM3_UPCount_Init(void)
{
    TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
   // NVIC_InitTypeDef NVIC_StructInit;
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);

    TIM_TimeBaseStructInit(&TIM_TimeBaseStructure);
    TIM_TimeBaseStructure.TIM_Period = 50;
    TIM_TimeBaseStructure.TIM_Prescaler = 36000-1;
    //Sampling frequency of digital filter does not affect timer clock
    //Sampling Frequency Dividing Value
    TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
    TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
    TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;

    TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);

   // interrupt priority configuration
   //NVIC_StructInit.NVIC_IRQChannel = TIM3_IRQn;
   //NVIC_StructInit.NVIC_IRQChannelPriority = 1;
   //NVIC_StructInit.NVIC_IRQChannelCmd = ENABLE;
   //NVIC_Init(&NVIC_StructInit);
         
    TIM_ClearITPendingBit(TIM3, TIM_IT_Update);
    TIM_ClearFlag(TIM3, TIM_FLAG_Update);
    TIM_ITConfig(TIM3, TIM_IT_Update, ENABLE);
    TIM_ARRPreloadConfig(TIM3, ENABLE);
    TIM_Cmd(TIM3, ENABLE);
}
void NVIC_Configure(u8 ch, u8 pri, u8 sub)
{
    exNVIC_Init_TypeDef  NVIC_InitStruct;
    NVIC_InitStruct.NVIC_IRQChannel = ch;
    NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = pri;
    NVIC_InitStruct.NVIC_IRQChannelSubPriority = sub;
    NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE;

    exNVIC_Init(&NVIC_InitStruct);
}
s32 main(void)
{
          SystemInit();//36M
    LED_Init();
    DELAY_Init();
          NVIC_Configure(TIM3_IRQn, 0, 1);
          TIM3_UPCount_Init();
    while(1)
                {
                         if(1 == j)
                         {                                 
                          // GPIOB->BRR = 0x1000U;
                                GPIO_ResetBits(GPIOB,GPIO_Pin_12);
                         }
                         else
                         {
                         // GPIOB->BSRR = 0x1000U;
                                GPIO_SetBits(GPIOB,GPIO_Pin_12);
                         }       
    }
}
void TIM3_IRQHandler(void)
{
        if(TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET)
        {
    TIM_ClearITPendingBit(TIM3, TIM_IT_Update);
                i++;
                if(i>9)
                {
                  i =0;
                        j = !j;
                }
        }
}

使用特权

评论回复
沙发
州滁387|  楼主 | 2022-1-14 08:45 | 只看该作者
GPIOB->BRR      GPIOB->BSRR   2个寄存器直接赋值导致不能进去TIM3中断,请问怎么回事呢。芯片是MM32F0133C7P

使用特权

评论回复
板凳
huquanz711| | 2022-1-15 08:59 | 只看该作者
那应该是寄存器配置有问题吧

使用特权

评论回复
地板
豌豆爹| | 2022-1-17 10:06 | 只看该作者
最好先检查一下你的寄存器

使用特权

评论回复
5
yangxiaor520| | 2022-1-17 20:56 | 只看该作者
寄存器配置对没有

使用特权

评论回复
6
gouguoccc| | 2022-1-18 08:26 | 只看该作者
那是没配对的原因

使用特权

评论回复
7
labasi| | 2022-2-4 09:32 | 只看该作者
可以直接对这两个寄存器赋值吗

使用特权

评论回复
8
tpgf| | 2022-2-4 09:35 | 只看该作者
仿真时候看一下寄存器状态

使用特权

评论回复
9
paotangsan| | 2022-2-4 09:41 | 只看该作者
寄存器配置有问题

使用特权

评论回复
10
renzheshengui| | 2022-2-4 09:55 | 只看该作者
这两个标志位是什么 意思来着?

使用特权

评论回复
11
wakayi| | 2022-2-4 10:02 | 只看该作者
都需要配置哪些寄存器呢

使用特权

评论回复
12
wowu| | 2022-2-4 10:09 | 只看该作者
这是将引脚配置成什么状态了啊

使用特权

评论回复
13
match007| | 2022-2-11 16:26 | 只看该作者
这不还是库么

使用特权

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

本版积分规则

7

主题

14

帖子

0

粉丝