基于stm32通用定时器设置的学习心得

分享到:

stm32单片机的定时器资源相当丰富,它的定时器分为高级控制定时器、通用定时器和基本定时器,具体这些定时器资源在哪个系列的片子有就得看不同的片子的手册了。他们具体有什么区别,我也是刚接触这个,看他的数据手册介绍也是茫然,主要是刚开始摸,那些功能都没用到,反正用做定时作用的话哪种定时器都行。在这我就把我自己配置通用定时器的方法及心得简短做个总结,以防以后忘记了。我配置的是定时器2(TIM2)。

定时器设置
通用定时器的时钟可来自于外部或内部,选用默认即是采用内部的。通用定时器的时钟来源为APB1总线,所以首先,得将APB1外设时钟打开。
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
其次,就是定时器的相关参数信息的配置,这些参数信息都在TIM_TimeBaseInitTypeDef这么一个结构体当中,所以得定义这么一个结构体变量。结构体中的有关成员含义如下:

TIM_TimeBaseInitStrcture.TIM_Prescaler = 0x1c20;  //时钟预分频系数,看单词意思就知道了,即是将APB1时钟进行相应分频得到一个合适的频率
TIM_TimeBaseInitStrcture.TIM_CounterMode = TIM_CounterMode_Up;  //计数模式
TIM_TimeBaseInitStrcture.TIM_Period = 0x270f;  //计数周期,即是往ARR寄存器中填的一个自动转载值,这个值等于目标值-1
TIM_TimeBaseInitStrcture.TIM_ClockDivision=TIM_CKD_DIV1;  //这是数字滤波器的相关设置,定时的时候不用外部时钟,所以这个设为0即可,TIM_CKD_DIV1这个就是等价于0,你要是设为其他值也不影

下面自然是初始化这个结构体当中的参数信息了。
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseInitStrcture);
再次,就是定时器中断的相关配置了,在配置中断的时候特别一定要注意顺序,否则就会出问题,我一开始就是没注意这个顺序问题,看着错误还不知道怎么回事,还好后面被我发现,哈哈。在使能中断之前一定得先清掉中断中断标志位和中断挂起位,如下:

TIM_ClearFlag(TIM2, TIM_FLAG_Update);
TIM_ClearITPendingBit(TIM2, TIM_FLAG_Update);
TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);

如果不先清掉挂起位和标志位,那么一使能中断,就立马进入中断服务函数,显然这不是我们想要的,我就被这个问题整了一下。接下来就是使能定时器了,TIM_Cmd(TIM2, ENABLE);这自不用说。
最后,就是配置NVIC嵌套向量中断控制寄存器了。

NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x00);//the second parameter must be a multiple of 0x200
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//2 bits for pre-emption priority, 2 bits for subpriority
NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);

其实,我认为在主函数里调用定时器配置函数和NVIC配置函数时,应该先调用NVIC配置函数,因为先设置好中断分组等相关参数信息后,再去打开定时器,定时器中断就能按照NVIC的信息去工作。
接下来的就是在stm32f10x_it.c中写自己的中断服务函数了。
void TIM2_IRQHandler(void)
{
…………
}
到此,通用定时器配置成功。

 

STM32单片机中文官网
意法半导体/ST/STM

继续阅读
意法半导体推出超低功耗的工业资产管理Sigfox Monarch解决方案,让全球物联网设备实现无缝连接

中国,北京,2018年10月23日- 横跨多重电子应用领域、全球领先的半导体供应商意法半导体是第一家开发、销售经过相关行业标准认证的全球无缝接入、超低功耗、远距离无线物联网连接解决方案,并支持全球领先的物联网服务提供商Sigfox的Monarch全球跟踪和定位服务的芯片制厂商 。

意法半导体推出更快、更灵活的探针,简化STM8和STM32案上及现场代码烧写流程

中国,2018年10月10日——意法半导体推出了STLINK-V3下一代STM8 和STM32微控制器代码烧写及调试探针,进一步改进代码烧写及调试灵活性,提高效率。STLINK-V3支持大容量存储,具有虚拟COM端口和多路桥接功能,烧写性能是上一代探针的三倍,产品价格具市场竞争力,节省应用开发时间,简化设备现场重新编程流程。

STM32中文社区,全新域名已上线

2018年9月25日起,STM32中文社区的域名正式改为www.stmcu.org.cn

意法半导体中国首家STM32官方旗舰店入驻天猫商城,为物联网开发者提供一站式服务

中国北京,2018年9月25日 - 横跨多重电子应用领域、全球领先的半导体供应商意法半导体,宣布中国第一家STM32 *官方在线商店入驻阿里巴巴天猫商城。STM32天猫旗舰店的开通标志着意法半导体和阿里巴巴正扩大合作范围,致力于为中国市场提供完整的物联网垂直解决方案。

ST携最新的万物智能解决方案亮相2018杭州·阿里巴巴云栖大会

中国杭州,2018年9月19日——横跨多重电子应用领域、全球领先的半导体供应商意法半导体(STMicroelectronics,简称ST;纽约证券交易所代码:STM)将携先进的万物智能解决方案亮相于9月19-22日举行的2018杭州·阿里巴巴云栖大会。