中级会员
 
- 积分
- 282
- 金钱
- 282
- 注册时间
- 2019-1-15
- 在线时间
- 41 小时
|

楼主 |
发表于 2019-3-30 10:07:06
|
显示全部楼层
本帖最后由 吃葡萄吐葡萄皮 于 2019-3-30 10:08 编辑
感谢原子哥回复,是这样的我用的是STM8S105单片机根据数据手册上说只有TIM1可以设置为外部计数模式,在实际程序中初始化CH1触发计数或者CH2触发计数都可以实现,但是比如说我刚开始初始化CH1进行外部计数,然后再程序中过段时间后初始化为CH2进行外部计数,这时候就不行了,就算再切换到CH1计数也不行了,难道是我的初始化方式有问题吗?一下是我的初始化函数,单独初始化都可以工作(引脚初始化已再别的函数中完成)。
void TIM1_CH1_Init()
{
/*定时器配置*/
TIM1_CR1=0;//开启计数器
TIM1_ARRH=0xFF;
TIM1_ARRL=0xFF;
TIM1_PSCRH=0;
TIM1_PSCRL=0;
TIM1_CCMR1|=0xF1;//设置滤波CC1通道被配置为输入, IC1映射在TI1FP1上;
TIM1_CCER1|=0x02;//捕捉发生在TI1F的低电平或下降沿
TIM1_SMCR|=0x57;//101:滤波后的定时器输入1(TI1FP1)
TIM1_CR1=1;//开启计数
}
void TIM1_CH2_Init()//PD4外部时钟模式
{
/*定时器配置*/
TIM1_CR1=0;//开启计数器
TIM1_ARRH=0xFF;
TIM1_ARRL=0xFF;
TIM1_PSCRH=0;
TIM1_PSCRL=0;
TIM1_CCMR2|=0xF1;//设置滤波CC2通道被配置为输入, IC2映射在TI2FP2上;
TIM1_CCER1|=0x20;//捕捉发生在TI1F的低电平或下降沿
TIM1_SMCR|=0x67;//101:滤波后的定时器输入2(TI2FP2)
TIM1_CR1=1;//开启计数器
}
拜谢!!!!!
|
|