|
/* TIM3 clock source enable */
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
/* Enable GPIOA, clock */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
/* Enable GPIOB, clock */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
GPIO_StructInit(&GPIO_InitStructure);
/* Configure PA.06,07 PB.00 as Hall sensors input */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
// GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOB, &GPIO_InitStructure);
#define HALL_TIMER TIM3
// Timer configuration in Clear on capture mode
TIM_DeInit(HALL_TIMER);
TIM_TimeBaseStructInit(&TIM_HALLTimeBaseInitStructure);
// Set full 16-bit working range
TIM_HALLTimeBaseInitStructure.TIM_Period = U16_MAX;
TIM_HALLTimeBaseInitStructure.TIM_ClockDivision = TIM_CKD_DIV1;
TIM_TimeBaseInit(HALL_TIMER,&TIM_HALLTimeBaseInitStructure);
TIM_ICStructInit(&TIM_HALLICInitStructure);
TIM_HALLICInitStructure.TIM_Channel = TIM_Channel_1;
TIM_HALLICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Falling;
#define ICx_FILTER (u8) 0x0B // 11 <-> 1333 nsec
#define HALL_MAX_RATIO ((u16)800u)
TIM_HALLICInitStructure.TIM_ICFilter = ICx_FILTER;
TIM_ICInit(HALL_TIMER,&TIM_HALLICInitStructure);
// Force the HALL_TIMER prescaler with immediate access (no need of an update event)
TIM_PrescalerConfig(HALL_TIMER, (u16) HALL_MAX_RATIO,
TIM_PSCReloadMode_Immediate);
TIM_InternalClockConfig(HALL_TIMER);
//--------------------------------------------
//Enables the XOR of channel 1, channel2 and channel3
TIM_SelectHallSensor(HALL_TIMER, ENABLE);
//--------------------------------------------
TIM_SelectInputTrigger(HALL_TIMER, TIM_TS_TI1FP1);
TIM_SelectSlaveMode(HALL_TIMER,TIM_SlaveMode_Reset);
// Source of Update event is only counter overflow/underflow
TIM_UpdateRequestConfig(HALL_TIMER, TIM_UpdateSource_Regular);
/* Enable the HALL_TIMER IRQChannel*/
NVIC_InitHALLStructure.NVIC_IRQChannel = TIM3_IRQChannel;
怎么在中断时接口读入得编码总是5,6,3这3个只值其他的1,2,4就是进不去,不知道怎么回事请高手赐教,谢谢 |
阿莫论坛20周年了!感谢大家的支持与爱护!!
你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。
|