STM32F103RCT6定时器如何设置成当引脚变成高电平时触发计数
时间: 2023-08-11 15:02:49 浏览: 131
要将STM32F103RCT6的定时器配置为在引脚变为高电平时触发计数,你可以按照以下步骤进行配置:
1. 启用相应GPIO引脚的时钟:例如,如果你要使用PA0引脚,则需要在RCC_APB2ENR寄存器中使能GPIOA的时钟。例如,可以使用RCC_APB2ENR |= RCC_APB2ENR_IOPAEN;来启用GPIOA的时钟。
2. 配置GPIO引脚为输入模式:在GPIO端口配置寄存器(GPIOx_CRL或GPIOx_CRH,x为对应的端口字母)中将相应引脚的模式设置为输入模式。例如,如果要使用PA0引脚,则可以使用GPIOA->CRL &= ~(GPIO_CRL_MODE0 | GPIO_CRL_CNF0);来配置PA0引脚为输入模式。
3. 配置定时器的控制寄存器(TIMx_CR1):
- 清除所有位,以确保配置的干净状态:TIMx->CR1 = 0;
- 设置计数模式为向上计数:TIMx->CR1 |= TIM_CR1_DIR;
- 禁用自动重装载预装载寄存器:TIMx->CR1 &= ~TIM_CR1_ARPE;
4. 配置定时器的输入捕获寄存器(TIMx_CCRx,x为对应的通道号):
- 设置输入捕获通道的工作模式为TI1触发:TIMx->CCMR1 |= TIM_CCMR1_CC1S_0;
- 设置输入捕获通道的触发极性为上升沿触发:TIMx->CCER |= TIM_CCER_CC1P;
5. 配置定时器的外部触发寄存器(TIMx_SMCR):
- 设置外部触发源为TI1触发:TIMx->SMCR |= TIM_SMCR_TS_0 | TIM_SMCR_TS_2;
- 设置外部触发滤波器为不使用滤波:TIMx->SMCR &= ~TIM_SMCR_ETF;
6. 启动定时器:将控制寄存器(TIMx_CR1)中的CEN位设置为1,使定时器开始计数。例如,TIMx->CR1 |= TIM_CR1_CEN;
通过按照上述步骤配置和启动定时器,它将在引脚变为高电平时触发计数。你可以根据需要使用定时器的计数值来执行其他操作或任务。
阅读全文