STM8S103K3的TIM1的1、2通道做正交编码器接口?
试了若干种方案,PC6 PC7接的。CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);
CLK->PCKENR1 = 0xFF;
//GPIO初始化
GPIO_Init(GPIOC, GPIO_PIN_6, GPIO_MODE_IN_FL_NO_IT);
GPIO_Init(GPIOC, GPIO_PIN_7, GPIO_MODE_IN_FL_NO_IT);
TIM1_TimeBaseInit(0, TIM1_COUNTERMODE_UP , 3000, 0);
TIM1_EncoderInterfaceConfig(TIM1_ENCODERMODE_TI1, TIM1_ICPOLARITY_RISING, TIM1_ICPOLARITY_RISING);
TIM1_ICInit(TIM1_CHANNEL_1, TIM1_ICPOLARITY_RISING, TIM1_ICSELECTION_DIRECTTI,TIM1_ICPSC_DIV1, 0);
TIM1_ICInit(TIM1_CHANNEL_2, TIM1_ICPOLARITY_RISING, TIM1_ICSELECTION_DIRECTTI,TIM1_ICPSC_DIV1, 0);
TIM1_ARRPreloadConfig(ENABLE);
TIM1_Cmd(ENABLE);
TIM1->CNT没有任何反应?
我看手册上有怎么一句提醒:
Note: CC1S bits are writable only when the channel is off (CC1E = 0 in TIM1_CCER1).
我看TIM1_EncoderInterfaceConfig()函数似乎并没有遵守上面这条。我看他是先使能CCnE,然后
修改CCnS.
你调整下看看,或者直接寄存器来写这几句代码。 楼主加油:):):):) :):):):):)看官方手册 已经解决,确实读手册不够。 楼主主要是忽略了GPIO的复用重映射的OPTION项配置。
http://mp.weixin.qq.com/s?__biz=MzA3OTIxMjQyNQ==&mid=402036336&idx=1&sn=1debf96fb2ffc65886f3257c1577d1fa#rd 这里有详细解释。
页:
[1]