OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4800|回复: 4

如何让定时器的计数寄存器按照设定的初始值开始计数?

[复制链接]

80

主题

188

帖子

0

精华

高级会员

Rank: 4

积分
680
金钱
680
注册时间
2013-8-16
在线时间
37 小时
发表于 2015-6-10 10:45:31 | 显示全部楼层 |阅读模式
5金钱
大家好,现在遇到了一个问题,我做了一个定时器精确控制led灯的闪烁实验。我想让定时器的计数寄存器按照我设定的初始值开始计数,而不是从0开始计数,我的计数方向是向上计数。可是最终测试结果显示每次还是从0开始计数的,发生中断的周期不受我设置的计数寄存器中的值的影响。下面是我的代码,还请大家帮忙看看,问题出在什么地方。谢谢
//定时器初始化
void TIM3_Int_Init(u16 arr,u16 psc)
{
    TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
NVIC_InitTypeDef NVIC_InitStructure;

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //时钟使能

TIM_TimeBaseStructure.TIM_Period = arr; //设置在下一个更新事件装入活动的自动重装载寄存器周期的值 计数到5000为500ms
TIM_TimeBaseStructure.TIM_Prescaler =psc; //设置用来作为TIMx时钟频率除数的预分频值  10Khz的计数频率  
TIM_TimeBaseStructure.TIM_ClockDivision = 0; //设置时钟分割:TDTS = Tck_tim
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //TIM向上计数模式
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //根据TIM_TimeBaseInitStruct中指定的参数初始化TIMx的时间基数单位
TIM_SetCounter(TIM3, 10000); 
TIM_ITConfig(  //使能或者失能指定的TIM中断
TIM3, //TIM2
TIM_IT_Update ,
ENABLE  //使能
);
NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;  //TIM3中断
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;  //先占优先级0级
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;  //从优先级3级
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道被使能
NVIC_Init(&NVIC_InitStructure);  //根据NVIC_InitStruct中指定的参数初始化外设NVIC寄存器

TIM_Cmd(TIM3, ENABLE);  //使能TIMx外设
 
}

int main(void)
{
  SystemInit();
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
  led_init();
  io_init();
  TIM3_Int_Init(19999,71); //预加载值19999+1,预分频值71+1
  while(1)
  {
  
  }
}







正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

56

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2015-3-9
在线时间
9 小时
发表于 2015-6-10 14:47:58 | 显示全部楼层
从0开始是对的啊,只有向上向下2种

不过你可以使用影子寄存器来满足你的要求
来来,我是一个白菜,菜菜菜。。。。。
回复

使用道具 举报

3

主题

2170

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5781
金钱
5781
注册时间
2013-11-22
在线时间
1212 小时
发表于 2015-6-11 00:00:49 | 显示全部楼层
定时器溢出中断里  设置CNT
回复

使用道具 举报

15

主题

53

帖子

0

精华

初级会员

Rank: 2

积分
141
金钱
141
注册时间
2015-5-14
在线时间
6 小时
发表于 2015-6-11 09:21:16 | 显示全部楼层
回复【2楼】tuy0326:
---------------------------------
不是还有中央对齐的吗?
回复

使用道具 举报

15

主题

53

帖子

0

精华

初级会员

Rank: 2

积分
141
金钱
141
注册时间
2015-5-14
在线时间
6 小时
发表于 2015-6-11 09:24:07 | 显示全部楼层
每20ms溢出?可以试验1s,500ms
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-21 15:07

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表