初级会员

- 积分
- 106
- 金钱
- 106
- 注册时间
- 2014-10-17
- 在线时间
- 3 小时
|
5金钱
我用定时器2的通道3的外部时钟模式3(TI3)来对外部脉冲计数,怎么不行啊,配置如下
void TIM2_trigger_Init(u16 arr,u16 psc)
{
RCC->APB1ENR|=1<<0; //TIM5 ?±?????? ,??PA2
RCC->APB2ENR|=1<<2; //????PORTA?±??
GPIOA->CRL&=0XFFFFF0FF; //PA2 ?????®?°?è??
GPIOA->CRL|=0X00000800; //PA2 ????
GPIOA->ODR|=0<<2; //PA2 ????
TIM2->ARR=arr; //?è?¨?????÷×?????×°??
TIM2-> SC=psc; //?¤·????÷ ,?????÷???±????????36/(psc+1)
TIM2->CCMR1|=1<<0; //CC3S=10 ?????????? IC1??????TI3??
TIM2->CCMR1|=0<<4; //IC3F=0000 ???????????¨?÷ ?????¨
//TIM2->CCMR1|=0<<10; //IC2PS=00 ????????·???,??·???
TIM2->CCER|=0<<9; //CC3P=0 ??????????///////////////////////////////////////////////////////////////////////////////
TIM2->SMCR|=0x67; //SMS=111 TS=110 ?????±??????1????????????·??????÷,T2×÷????·???????
//TIM2->DIER|=1<<1; //???í????????
//TIM2->DIER|=1<<0; //???í?ü??????
TIM2->CR1|=0x01; //?????¨?±?÷2
//MY_NVIC_Init(2,3,TIM2_IRQn,2);//????2??×???????0??×é2
}
主函数如下
int main(void)
{
u16 temp;
Stm32_Clock_Init(9); //?????±???è??,PLL9±???????×÷???????±????????
uart_init(72,9600); //?®??????????9600
MCO_Int_Init();
delay_init(72); //???±??????
LED_Init(); //????????LED??????????????
LCD_Init();
usmart_dev.init(72); //??????USMART
TIM2_trigger_Init(0XFFFF,72-1);
//TIM3_Int_Init(9999,7199);//10Khz????????????????1W????1S,???????±??
//TIM5_Cap_Init(0XFFFF,72-1); //??1Mhz??????????
//TIM4_Cap_Init(0XFFFF,72-1); //??1Mhz??????????
POINT_COLOR=RED;//?è??×??????ì??
LCD_ShowString(60,10,200,16,16,"ke cheng sheji:");
while(1)
{
temp=TIM2->CNT;
TIM2->CR1&=~(1<<0);
TIM2->CNT=0;
LCD_Fill(60,70,239,70+16,WHITE);
LCD_ShowxNum(60,70,temp,9,16,1);
delay_ms(1000);
TIM2->CR1|=0x01;
delay_ms(40000);
}
}
|
|