为什么TIM_ARRPreloadConfig在我的程序中没有作用 他到底有什么作用?

2019-03-23 17:36发布

我用TIM2定时一秒,可是 不管我将TIM_ARRPreloadConfig设置为DISABLE 还是ENABLE,结果都不变。我都不明白TIM_ARRPreloadConfig有什么作用了;  另外,TIM_TimeBaseStructure.TIM_Prescaler=0还是9我都试过,定时还是一秒;不知道为什么。那位大侠帮忙看看 下面是我的设置:         void initTIMER2(void)   //(APB1)

    TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);
 
 //36mhz/36000=1000=TIM_Period  TIM_DeInit(TIM2);
 //TIM_InternalClockConfig(TIM2);
 TIM_TimeBaseStructure.TIM_Period=2000;   //ARR的值
 TIM_TimeBaseStructure.TIM_Prescaler=0;    // 分频=TIM_Prescaler+1  预分频为1 
 TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1; //采样分频
 TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; //向上计数模式
 TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);
 TIM_PrescalerConfig(TIM2,35999,TIM_PSCReloadMode_Immediate);//时钟分频系数36000-1,所以定时器时钟为2K  预分频值即刻装入
 TIM_ARRPreloadConfig(TIM2,DISABLE);//禁止ARR预装载缓冲器   ??????
 TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE);  TIM_ClearFlag(TIM2,TIM_FLAG_Update);
 //开启时钟2
 TIM_Cmd(TIM2, ENABLE); } 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
xyz1015231411
1楼-- · 2019-03-25 03:59
敬重xiongrui助人为乐的精神!讲得很不错
jpaekeo
2楼-- · 2019-03-25 07:10
 精彩回答 2  元偷偷看……
Li_Lei
3楼-- · 2019-03-25 12:49
jpaekeo 发表于 2017-3-22 10:40
一直搞不清楚:TIM_ARRPreloadConfig()与TIM_OCxPreloadConfig()这两个函数有什么区别,能否讲解一下

就是为了避免赋值时刻不对引起的意外情况。
電氣男
4楼-- · 2019-03-25 13:03
huo_hu 发表于 2013-8-26 13:11
任何时候都能改,但使能预装载后只在更新时生效

那如果是Disable的话,请问什么时候才会生效呢
Li_Lei
5楼-- · 2019-03-25 18:51
 精彩回答 2  元偷偷看……
lounny_wu
6楼-- · 2019-03-26 00:17
各位工程大咖们,方案这块有用到硬件加密芯片,保护软件,防止抄板的,请联系我。QQ:937684930

一周热门 更多>