1、定时最多为256个时钟
给你打个比方:刚开始给TH0,TH0,敷相同一个值
运行的时候只有TL0在定时 TH0值不变。
定时满了后单片机会有溢出,TH0里面的值会自动给TL0,所以不需要重新敷值!#include "stm32f4xxh"
void TIM_Config(void);
int main(void)
{
TIM_Config(); //初始化定时器
while(1)
{
//TODO: 执行其他 *** 作
}
}
void TIM_Config(void)
{
TIM_TimeBaseInitTypeDef TIM_InitStruct;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); //使能TIM2时钟
TIM_InitStructTIM_ClockDivision = TIM_CKD_DIV1;
TIM_InitStructTIM_CounterMode = TIM_CounterMode_Up;
TIM_InitStructTIM_Period = 20000; //计数器值为20ms
TIM_InitStructTIM_Prescaler = 71; //预分频值为72MHz/(71+1)=1MHz
TIM_TimeBaseInit(TIM2, &TIM_InitStruct);
TIM_Cmd(TIM2, ENABLE); //使能TIM2
}RCAP2H和RCAP2L是定时器2的16位捕捉/自动重载寄存器
这个百科会对你特别有帮助
>首先四中模式的前三种,t0和t1完全相同。而模式3只适合定时器t0,t0在该模式下被拆成两个独立的8位计数器th0,tl0,其中tl0可以为8为定时器或计数器,并且使用原来t0的一些控制位和引脚,它们是:c、—t、gate、tr0,,—int0和tf0该模式下的th0,此时只可用作简单的内部定时器功能,它借用原来定时计数器t1的控制位tr1和益处标准tf1,同时占用了t1的中断源。T0:定时模式0:TMOD=0X00;定时模式1:TMOD=0x01,;定时模式2:TMOD=0x02,:定时模式3:TMOD=0x03;TMOD寄存器从高到底:GATE|C/-T|M1|M0|GATE|C/-T|M1|M0高四位控制定时器t1,底四位控制定时器t0其中M0、M1是控制工作模式的,C/-T是控制定时还是计数的、GATE是选通控制。这些都是基本的东西,如果你是刚开学,建议你买本教材看看。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)