请问这个定时时间怎么算啊?

2019-10-15 00:18发布

u16 capture=0; u16 CCR1_Val=1000; u16 CCR2_Val=5000; u16 CCR3_Val=10000; u16 CCR4_Val=20000;

       TIM_TimeBaseStructure.TIM_Period=65535; TIM_TimeBaseStructure.TIM_Prescaler=7200-1; TIM_TimeBaseStructure.TIM_ClockDivision=0x0; TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;//向上计数 TIM_TimeBaseInit(TIM2,&TIM_TimeBaseStructure);

void TIM2_IRQHandler(void) { /*TIM2_CH1*/ if(TIM_GetITStatus(TIM2,TIM_IT_CC1)!=RESET) { TIM_ClearITPendingBit(TIM2,TIM_IT_CC1); /*PC.1引脚的翻转频率为  Hz*/ GPIO_WriteBit(GPIOC,GPIO_Pin_1,(BitAction)(1-GPIO_ReadOutputDataBit(GPIOC,GPIO_Pin_1))); capture=TIM_GetCapture1(TIM2); TIM_SetCompare1(TIM2,capture+CCR1_Val); //GPIO_ResetBits(GPIOC,GPIO_Pin_All); } /*TIM2_CH2*/ if(TIM_GetITStatus(TIM2,TIM_IT_CC2)!=RESET) { GPIO_WriteBit(GPIOC,GPIO_Pin_2,(BitAction)(1-GPIO_ReadOutputDataBit(GPIOC,GPIO_Pin_2))); TIM_ClearITPendingBit(TIM2,TIM_IT_CC2); capture=TIM_GetCapture2(TIM2); TIM_SetCompare2(TIM2,capture+CCR2_Val); //GPIO_SetBits(GPIOC,GPIO_Pin_All);  }
}

请问这个定时时间怎么算啊?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
正点原子
1楼-- · 2019-10-15 05:50
看我们的教程先!!
tim4146
2楼-- · 2019-10-15 11:31
TIM_TimeBaseStructure.TIM_Period=65535;
TIM_TimeBaseStructure.TIM_Prescaler=7200-1;

TIM_TimeBaseStructure.TIM_ClockDivision=0x0;
TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;//向上计数
这个看懂了先
HUALIN
3楼-- · 2019-10-15 16:03
回复【3楼】tim4146:
---------------------------------
这个我懂啊 但是u16 capture=0;
u16 CCR1_Val=1000;
u16 CCR2_Val=5000;
u16 CCR3_Val=10000;
u16 CCR4_Val=20000;
这个呢?  注意:我现在设置的是这个模式GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;,而不是AF_PP,所以不是输出PWM哦
HUALIN
4楼-- · 2019-10-15 20:26
 精彩回答 2  元偷偷看……
tim4146
5楼-- · 2019-10-16 01:23
我也是正在学习的
GPIO_WriteBit(GPIOC,GPIO_Pin_1,(BitAction)(1-GPIO_ReadOutputDataBit(GPIOC,GPIO_Pin_1)));
是什么意思?特别是,(BitAction)(1-GPIO_ReadOutputDataBit(GPIOC,GPIO_Pin_1))
是啥....
tim4146
6楼-- · 2019-10-16 04:11
if(TIM_GetITStatus(TIM2,TIM_IT_CC1)!=RESET)
中断里面的内容看起来,似乎就是捕获外部信号产生的中断。不是定时器溢出中断啊...

一周热门 更多>