关于stm32l151 tim4 中断问题

2019-07-14 17:12发布

{
    tiM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4 , ENABLE);      /* 开启定时器 */
    TIM_DeInit(TIM4);
    //定时时间=((1+TIM_Prescaler )/72M)*(1+TIM_Period )
    TIM_TimeBaseStructure.TIM_Period=(32-1);                   /* 自动重装载寄存器周期的值(计数值) */
    /* 累计 TIM_Period个频率后产生一个更新或者中断 */
    TIM_TimeBaseStructure.TIM_Prescaler= (1);                  /* 时钟预分频数 72M/72 */
    TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;      /* 采样分频 */
    TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;  /* 向上计数模式 */
    TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure);
    TIM_ClearFlag(TIM4, TIM_FLAG_Update);                      /* 清除溢出中断标志 */
    TIM_ITConfig(TIM4,TIM_IT_Update,ENABLE);                   /* 使能中断 */
    TIM_Cmd(TIM4, ENABLE);                                     /* 开启时钟 */

    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4 , DISABLE);     /*先关闭等待使用*/   
}

求助此为tim4的程序配置,当TIM_TimeBaseStructure.TIM_Prescaler 配置为 2 的时候 就会不出中断
中断 是在 程序需要的时候 才会去 打开 tim4 使能
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
hjfsywer
1楼-- · 2019-07-14 18:30
318lxy 发表于 2018-10-1 13:00
看着Ok,你比较一下TIM_TimeBaseStructure.TIM_Prescaler值不同时的差异

您好,谢谢您的关注
是这样  TIM_TimeBaseStructure.TIM_Prescaler =1 的时候 我程序正常运行
但是  TIM_TimeBaseStructure.TIM_Prescaler = 2 的时候 程序就会跑不出tim4的中断函数

只修改这个值  程序其他地方是不会动到的
selinali0112
2楼-- · 2019-07-14 22:10
哪个是预分频吧
hjfsywer
3楼-- · 2019-07-15 03:37
selinali0112 发表于 2018-10-1 13:26
哪个是预分频吧

是的,修改一下  就会不出 中断 很奇怪
selinali0112
4楼-- · 2019-07-15 08:52
debug下看停在什么地方
hjfsywer
5楼-- · 2019-07-15 13:55
 精彩回答 2  元偷偷看……
hjfsywer
6楼-- · 2019-07-15 19:52
selinali0112 发表于 2018-10-1 13:56
debug下看停在什么地方

就是停在 tim4 跳出的 地方

一周热门 更多>