TIM_TimeBaseStructure.TIM_Period = 0xffffffff; //传感器最大探测距离4000mm,一般不会溢出 TIM_TimeBaseStructure.TIM_Prescaler =84-1; //设置TIM2时钟频率为1MHz TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; TIM_TimeBaseStructur
t_timebase.TIM_CounterMode=TIM_CounterMode_Up; TIM_TimeBaseInit(TIM3,&t_timebase); //自动重装 TIM_ARRPreloadConfig(TIM3,ENABLE); //清空中断标志 TIM_ClearITPendingBit(TIM3,TIM_IT_Update); //启用中断 TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE); //启用TIM3 TIM_Cmd(TIM3,ENABLE); } void N...
void TIM_ITRxExternalClockConfig(TIM_TypeDef* TIMx, uint16_t TIM_InputTriggerSource) - 用于配置定时器的外部时钟输入触发源 void TIM_TIxExternalClockConfig(TIM_TypeDef* TIMx, uint16_t TIM_TIxExternalCLKSource,uint16_t TIM_ICPolarity, uint16_t ICFilter) - 用于配置定时器的外部时钟输入源和相关参...
第二个参数用于指定TIM中断源,这里我们指定整个中断源(TIM_IT_Update ) TIM_IT_UpdateTIM 中断源 //计数溢出时 TIM_IT_CC1 TIM 捕获/ 比较 1 中断源 TIM_IT_CC2 TIM 捕获/ 比较 2 中断源 TIM_IT_CC3 TIM 捕获/ 比较 3 中断源 TIM_IT_CC4 TIM 捕获/ 比较 4 中断源 TIM_IT_Trigger TIM 触发中...
2.2、TIM_TimeBaseInit 时基单元初始化2.3、 TIM_TimeBaseStructInit 时基单元结构体默认赋值2.4、TIM_Cmd 使能计数器2.5、TIM_ITConfig 使能中断输出信号2.6、TIM_InternalClockConfig 选择内部时钟2.7、TIM_ITRxExternalClockConfig2.8、TIM_TIxExternalClockConfig...
while(TIM_GetFlagStatus(TIM5, TIM_IT_CC2) == RESET)//等待捕获上升沿 { if(TIM_GetCounter(TIM5)>TPAD_ARR_MAX_VAL-500)return TIM_GetCounter(TIM5);//超时了,直接返回CNT的值 }; return TIM_GetCapture2(TIM5); } 1. 2. 3.
TIM_ClearITPendingBit(TIM3,TIM_IT_Update); //清除中断标志位 if(CapStatus) TIM3_CH3_Capture++; } if(TIM_GetITStatus(TIM3,TIM_IT_CC3)) //RB0输入捕获中断 { TIM_ClearITPendingBit(TIM3,TIM_IT_CC3); //清除中断标志位 if(!CapStatus) ...
ITRx 与 TIM 的具体连接方式(内部触发连接表) 举个例子,实现前面提到的 TIM 级联。例如,我们先初始化 TIM3,然后使用主模式把它的更新事件映射到 TRGO。然后看上表,TIM3 的TRGO 连接到了 TIM2 的 ITR2 上,所以我们接下来初始化 TIM2,选择 ITR2 通道,并选择外部时钟模式 1,就完成了 TIM3 到 TIM2 的级...
TIM_ITConfig(TIM3, TIM_IT_CC2, ENABLE); //打开中断 中断处理函数 void TIM3_IRQHandler(void...