使用stm32的定时器进行输入脉冲的计数

上传人:第*** 文档编号:30558851 上传时间:2018-01-30 格式:DOC 页数:5 大小:28.50KB
返回 下载 相关 举报
使用stm32的定时器进行输入脉冲的计数_第1页
第1页 / 共5页
使用stm32的定时器进行输入脉冲的计数_第2页
第2页 / 共5页
使用stm32的定时器进行输入脉冲的计数_第3页
第3页 / 共5页
使用stm32的定时器进行输入脉冲的计数_第4页
第4页 / 共5页
使用stm32的定时器进行输入脉冲的计数_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《使用stm32的定时器进行输入脉冲的计数》由会员分享,可在线阅读,更多相关《使用stm32的定时器进行输入脉冲的计数(5页珍藏版)》请在金锄头文库上搜索。

1、使用 STM32 的定时器进行输入脉冲的计数STM32 的定时器具有计数功能,在实际应用中可以用来对引脚上的输入信号进行统计。其输入信号作为计数时钟,输入引脚为 ETR 引脚。本例程使用 Timer 2,其 ETR 输入引脚为 PA1,初始化是设置该引脚工作模式为输入模式,Timer2 的工作模式为从模式。为了方便测试,另外使用 PC6 模式输出一个时钟信号。测试时将 PC6 与 PA1 短接。(用户也可另外连接一个时钟信号到 PA1 引脚上。)代码如下:int main(void)unsigned char i_Loop;unsigned char n_Counter;#ifdef DEBU

2、Gdebug();#endifRCC_Configuration(); / System Clocks ConfigurationNVIC_Configuration(); / NVIC configurationGPIO_Configuration(); / Configure the GPIO portsTIM_TimeBaseStructure.TIM_Period = 0xFFFF;TIM_TimeBaseStructure.TIM_Prescaler = 0x00;TIM_TimeBaseStructure.TIM_ClockDivision = 0x0;TIM_TimeBaseSt

3、ructure.TIM_CounterMode = TIM_CounterMode_Up;TIM_TimeBaseInit(TIM2, /Time base configurationTIM_ETRClockMode2Config(TIM2,TIM_ExtTRGPSC_OFF,TIM_ExtTRGPolarity_NonInverted,0);TIM_SetCounter(TIM2, 0);TIM_Cmd(TIM2, ENABLE);for(i_Loop = 0; i_Loop 100; i_Loop +)GPIO_SetBits(GPIOC, GPIO_Pin_6);Delay(10);GP

4、IO_ResetBits(GPIOC, GPIO_Pin_6);Delay(10);n_Counter = TIM_GetCounter(TIM2);while (1) 前三行进行了时钟、中断、和 I/O 口的配置。然后进行 Timer 的基本配置,计数器自动装载值为 0xFFFF,计数频率不分频,定时器时钟(CK_INT)频率与数字滤波器(ETR,TIx)使用的采样频率之间的分频比为 1,计数器向上计数。TIM_ETRClockMode2Config(TIM2,TIM_ExtTRGPSC_OFF,TIM_ExtTRGPolarity_NonInverted,0);使用 ETR 时钟作为计数时

5、钟需要设置为外部时钟模式 2,故调用该函数,在设置时1、关闭预分频:TIM_ExtTRGPSC_OFF。可选项:TIM_ExtTRGPSC_OFF 0x0000TIM_ExtTRGPSC_DIV2 0x1000TIM_ExtTRGPSC_DIV4 0x2000TIM_ExtTRGPSC_DIV8 0x30002、外部触发极性 ETR 不反相,高电平或上升沿有效:TIM_ExtTRGPolarity_NonInverted。可选项:TIM_ExtTRGPolarity_Inverted 和TIM_ExtTRGPolarity_NonInverted。3、外部触发无滤波器:0000。可选项:0:无

6、滤波器,以 fDTS 采样1:采样频率 fSAMPLING=fCK_INT,N=22:采样频率 fSAMPLING=fCK_INT,N=43:采样频率 fSAMPLING=fCK_INT,N=84:采样频率 fSAMPLING=fDTS/2,N=65:采样频率 fSAMPLING=fDTS/2,N=86:采样频率 fSAMPLING=fDTS/4,N=67:采样频率 fSAMPLING=fDTS/4,N=88:采样频率 fSAMPLING=fDTS/8,N=69:采样频率 fSAMPLING=fDTS/8,N=810:采样频率 fSAMPLING=fDTS/16,N=511:采样频率 fSAMPLING=fDTS/16,N=612:采样频率 fSAMPLING=fDTS/16,N=813:采样频率 fSAMPLING=fDTS/32,N=514:采样频率 fSAMPLING=fDTS/32,N=615:采样频率 fSAMPLING=fDTS/32,N=8TIM_SetCounter(TIM2, 0);初始化 Timer 的计数器初始值为 0;TIM_Cmd(TIM2, ENABLE);启动 Timer2代码下载: http:/

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号