本文以STM8S103F3P6编程为例,介绍STM8S103F3P6定时器1捕获周期及占空比
电脑平台:Windows7 64位旗舰
编译软件:IAR
硬件平台:STM8S103F3P6
1.系统时钟初始化为内部16M
CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1); //时钟 初始化时钟为1分频 16M 2分频8M
2.初始化定时器1设置PC6为捕获输入
void Init_Timer1(void)
{
GPIO_Init(GPIOC, GPIO_PIN_6, GPIO_MODE_IN_FL_NO_IT); //输入浮动,没有外部中断
TIM1_DeInit(); //tim1 定时器寄存器全部复位
TIM1_TimeBaseInit(0x0f, TIM1_COUNTERMODE_UP, 50000-1, 0);// 50ms 最小捕获50hz 设置时间分频 向上计数 捕捉50Hz及 以上的周期和占空比
TIM1_PWMIConfig(TIM1_CHANNEL_1, TIM1_ICPOLARITY_RISING, TIM1_ICSELECTION_DIRECTTI, TIM1_ICPSC_DIV1, 0x00); //选择TI1输入上升沿触发 选择TI2输入下降沿触发 输入捕捉预定标器 无滤波
TIM1_SelectInputTrigger(TIM1_TS_TI1FP1); //滤波后输入TI1
TIM1_SelectSlaveMode(TIM1_SLAVEMODE_RESET);//复位输入
TIM1_ClearFlag(TIM1_FLAG_CC1);