基于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

继续阅读
意法半导体推出STM32扩展软件,简化物联网终端安全功能部署

中国,2018年5月15日——通过在一个简便的STM32Cube扩展软件包内整合安全启动、安全固件更新和安全引擎服务,意法半导体的X-CUBE-SBSFU v.2.0能帮助产品开发人员充分利用STM32 微控制器的安全功能保护物联网终端等联网设备的数据安全、管理生命周期。

瞄准先进工业感测应用,ST推出新型高精度MEMS传感器

中国,2018年5月10日 – 横跨多重电子应用领域的全球领先的半导体供应商、世界最大的消费级MEMS运动传感器供应商意法半导体将于今年面向工业市场推出全新的高稳定性MEMS传感器,履行其推动先进自动化和工业物联网(IIoT)市场发展的承诺。同时,公司还将为新产品提供不低于10年供货保证。

意法半导体 Sigfox STM32微控制器为物联网设备开发人员扩大设备连接选择

中国,2018年3月13日——意法半导体STM32软件生态系统新增一个Sigfox软件包,可简化物联网设备开发,提升物联网设备与远距离低功耗无线网络连接的灵活性。这款新X-CUBE-SFOX软件包可直接与意法半导体 B-L072Z-LRWAN1探索套件配套使用,I-CUBE-LRWAN 嵌入式软件已经让该套件具有 LoRa 连接功能。

意法半导体在慕尼黑上海电子展上展示最新的智能驾驶和物联网解决方案

中国,2018年3月13日——在2018年3月14-16日中国上海新国际博览中心德国慕尼黑上海电子展E4.4104展台上,横跨多重电子应用领域的全球领先的半导体供应商意法半导体(STMicroelectronics,简称ST;纽约证券交易所代码:STM)将展示其最新的智能驾驶和物联网(IoT)技术产品。

STM32L496探索套件,连接云服务更快捷

中国,2018年3月2日 —— 意法半导体专门配置的两个STM32探索套件让物联网设备能够通过2G/3G或LTE Cat M1/NB1网络快速连接云服务,让大众市场开发人员更自由、更灵活地开发应用。每款套件都包括一个STM32L496探索板和集成一个Quectel蜂窝移动网络调制解调器的STMod+ 蜂窝扩展板。