没有32位定时器, 想要一个32位定时器,是不是可以级联?.
求助大神, 只要基础定时器, 到了时间产生中断,但是需要32位的。 是不是可以用TIM2触发TIM3,级联定时?TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); //clock
TIM_TimeBaseStructure.TIM_Period = 4999; //设置在下一个更新事件装入活动的自动重装载寄存器周期的值
TIM_TimeBaseStructure.TIM_Prescaler = 799; //设置用来作为TIMx时钟频率除数的预分频值
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //设置时钟分割:TDTS = Tck_tim
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;//TIM向上计数模式
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); //根据指定的参数初始化TIMx的时间基数单位
TIM_SelectOutputTrigger(TIM2, TIM_TRGOSource_Update); //选择输出模式主模式选择 这是级联的关键
TIM_SelectMasterSlaveMode(TIM2, TIM_MasterSlaveMode_Enable); //启动定时器的主从模式
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //clock
TIM_TimeBaseStructure.TIM_Period = 4999; //设置在下一个更新事件装入活动的自动重装载寄存器周期的值
TIM_TimeBaseStructure.TIM_Prescaler = 79; //设置用来作为TIMx时钟频率除数的预分频值
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //设置时钟分割:TDTS = Tck_tim
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;//TIM向上计数模式
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //根据指定的参数初始化TIMx的时间基数单位
// TIM_SlaveMode_Trigger // TIM_SlaveMode_External1 // TIM_SlaveMode_Gated
TIM_SelectSlaveMode (TIM3, TIM_SlaveMode_External1);// 从模式外部触发模式 //外部时钟模式 外部时钟模式1 – 选中的触发输入(TRGI)的上升沿驱动计数器
TIM_SelectInputTrigger (TIM3, TIM_TS_ITR1);// 触发选择,ITR1 即 TIM2
// TIM_ITRxExternalClockConfig(TIM3, TIM_TS_ITR1);
TIM_ITConfig(TIM3, TIM_IT_Update, ENABLE);
TIM_Cmd(TIM2, ENABLE);
TIM_Cmd(TIM3, ENABLE);
无法进入中断, 求解决。
定时器中断里多一个32位变量就够了,中断到来变量加1,
不必32位吧:L lwg8458 发表于 2019-9-24 11:12
不必32位吧
额,有需要,不然也不会要32位的。 wenyangzeng 发表于 2019-9-24 11:41
定时器中断里多一个32位变量就够了,中断到来变量加1,
是想要两个计时器, 高16位作为一个值,低16位作为一个值。 不是简单的得到加到32位数。 sitaijun1107 发表于 2019-9-24 11:45
是想要两个计时器, 高16位作为一个值,低16位作为一个值。 不是简单的得到加到32位数。 ...
那就再变通一下,设置2个16位变量就得了。 TIM_SelectSlaveMode (TIM3, TIM_SlaveMode_External1);// 从模式外部触发模式
从模式不应该配置为外部触发 TIM2不是外部触发
应该是触发模式 定时器级联触发是可以的。
如果要硬件32位定时器吗?可以换个型号
toofree 发表于 2019-9-24 17:30
定时器级联触发是可以的。
如果要硬件32位定时器吗?可以换个型号
换不了型号了,指定了 mylovemcu 发表于 2019-9-24 14:30
TIM_SelectSlaveMode (TIM3, TIM_SlaveMode_External1);// 从模式外部触发模式
从模式不应该配置为外部触 ...
TIM_SelectSlaveMode (TIM3, TIM_SlaveMode_Trigger);
使用了这个也没有用
页:
[1]
2