初级会员

- 积分
- 91
- 金钱
- 91
- 注册时间
- 2015-1-21
- 在线时间
- 12 小时
|
5金钱
大家好,刚刚注册了号,想问个问题。
我想用TIM5对外部脉冲计数,所以选择了外部时钟源模式1,但读TIM5->CNT一直为0,还望大家帮我看看我的程序是对的吗?
我习惯用寄存器写,
我是照着参考手册写得程序:
void TIM5_Cap_Init(u16 arr,u16 psc)
{
//A~G对应2~8
RCC->APB1ENR|=1<<3; //TIM5时钟
RCC->APB2ENR|=1<<3; //GPIOB时钟
RCC->APB2ENR|=1<<0; //AFIO时钟
GPIOB->CRL&=0x0FFFFFFF; //PB7配置为浮空输入
GPIOB->CRL|=0x40000000;
TIM5->ARR = arr-1; //
TIM5-> SC = psc-1; //
//CCMR:
TIM5->CCMR1&=~(3<<8);
TIM5->CCMR1|=1<<8; // CC2通道配置为输入,TC2映射在TI2上
TIM5->CCMR1&=0x0fff; // 不滤波¨
//CCER:
TIM5->CCER|=1<<4; //捕获使能
TIM5->CCER&=~(1<<5); //不反相,捕获发生在上升沿
//SMCR:
TIM5->SMCR&=~(7<<0);
TIM5->SMCR|=7<<0; //定时器外部时钟模式1
TIM5->SMCR&=~(7<<4);
TIM5->SMCR|=6<<4; //选定TI2FP2为触发源输入
TIM5->CR1&=~(1<<0);
TIM5->DIER|=0<<0; //关闭更新中断
TIM2->DIER|=0<<6; //关闭触法中断
TIM5->CR1|=1<<0; //使能定时器
TIM5->CNT=0; //清0计数器
}
|
|