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)
{
…………
}
到此,通用定时器配置成功。
并联直流稳压电源的优缺点是什么?
关于完整感测器解决方案的介绍和分享
军工电子设备之间电磁屏蔽效能问题的探讨
“Y电容”到底怎么接效果才是最好的?
通用原子航空系统公司在MQ-9A无人机上测试低轨卫星通信
基于stm32单片机的通用定时器配置
港珠澳大桥的配套LED路灯
RC微分器与RC高通滤波器二者有什么区别呢?
医疗器械产品的人机界面设计与控制概述
常见的电压问题及其解决方法
整流变压器的结构有哪些 整流变压器和电力变压器区别
基里巴斯航空与巴航工业签署了2架E190-E2飞机确认定单及2架购买权
专访:高通为何要做“分体式VR一体机”?
DEKRA德凯推出AEC-Q系列验证一站式服务
一文了解光敏传感器的类型、工作原理、应用场景及发展趋势
揭秘世界上最先进的五大工业4.0工厂
XDA论坛曝光了疑似谷歌Pixel 3 XL的原型机照片
诊断系统开发咨询服务
AI、机器学习和深度学习将是OEM的主要市场
关于基于应用非隔离直流的直流转换器的性能分析和应用