stm32 能否在定时器中断中修改定时器重装值?

stm32能否在定时器中断中修改定时器重装值?eg.在定时器2中断库函数TIM2_IRQHandler()中,使用TIM_TimeBaseInit()重新设定定时器2的重... stm32能否在定时器中断中修改定时器重装值? eg.在定时器2中断库函数TIM2_IRQHandler()中,使用TIM_TimeBaseInit()重新设定定时器2的重装值?如可以需要怎样配置? 展开
 我来答
百度网友25287a7e3
2013-07-08 · TA获得超过147个赞
知道答主
回答量:85
采纳率:0%
帮助的人:59.8万
展开全部
stm32能否在定时器中断中修改定时器重装值?

回答:可以的。

因为我是用的库函数,所以我下面粘贴一段自己写过的定时器的程序:
void tim2_cfg(void)
{
/**************** TIM配置 ****************/
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);

TIM_DeInit(TIM2);
TIM_InternalClockConfig(TIM2);
TIM_TimeBaseStructure.TIM_Prescaler = 72; //预分频系数为72,这样计数器时钟为72MHz/72 = 1MHz
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //设置时钟分割
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //设置计数器模式为向上计数模式
TIM_TimeBaseStructure.TIM_Period = 1000; //-1; //设置计数溢出大小,每计1000个数就产生一个更新事件
TIM_TimeBaseInit(TIM2,&TIM_TimeBaseStructure); //将配置应用到TIM2中
TIM_ARRPreloadConfig(TIM2, DISABLE); //禁止ARR预装载缓冲器
TIM_Cmd(TIM2, ENABLE); //使能TIMx外设
}
里面设置技术溢出大小那一句,就是设置装载值
追问
此函数是在中断库函数TIM2_IRQHandler()中调用的吗?改装载值之前需要关计时器吗?万分感谢。
追答
不是……这就是自己写的一个子函数,用于TIME的配置的。这个子函数里
TIM_ARRPreloadConfig(TIM2, DISABLE); //禁止ARR预装载缓冲器
这一句将DISABLE改为ENABLE,就使能了,即打开了TIME。

TIM2_IRQHandler()中只需要写你中断以后需要它执行的程序,并且清零中断位就好了……
610095871
2013-07-08 · TA获得超过455个赞
知道小有建树答主
回答量:380
采纳率:100%
帮助的人:268万
展开全部
TIM2->ARR=XXXX;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式