完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
本篇文章介绍定时器的使用方法,并应用定时器的作用 定时器(Timer)最基本的功能就是定时,定时功能与外设结合,可 定时发送 USART 数据 定时采集 AD数据。 将定时器与 GPIO结合起来使用,可以实现非常丰富的功能: 可以产生输出波形 可以测量输入信号的脉冲宽度 用定时器产生PWM 控制电机状态是工业控制的普遍方法 STM32中定时器 STM32中一共有11个定时器: 所有定时器都是彼此独立的,不共享任何资源
SysTick 系统滴答 SysTick 位于Cortex-M3核内的NVIC中,使用SysTick编写的程序代码在相同内核的器件间移植不需要修改。 简单 好用。 使用该功能实现LED灯的亮1s,灭1s。 通过CubeMX实现硬件资源配置。
通用定时器 通用定时器的功能是通过操作相应寄存器实现的 每个通用定时器有四类可编程的控制器: ※ 预分频器寄存器:TIMx_PSC ※ 自动重装载寄存器, TIMx_ARR ※ 当前值寄存器, TIMx_CNT ※ 比较/捕获寄存器(4个):TIMx_SR 计算定时器的工作频率 TIMx_PSC 表示分频系数 CK_CNT 表示定时器工作频率 则定时器的工作频率计算公式为: CK_CNT=CK_PSC/ (TIMx_PSC +1)每一个CK_CNT脉冲,TIMx_CNT值就加1,从CNT=0计数到ARR时产生中断,这时共经历ARR个时钟周期,中断频率 F_INT=CK_CNT/ (ARR+1) 普通定时器模块的时钟为72MHz,分频比(PSC)为7199,那么我们想要得到一个1秒钟的定时,定时计数器ARR的值需要设定为 10000 分频比设置为7199 因为72 000 000 / (7199+1) = 10KHz 时钟周期T=1/10KHz=100us 100us × 10 000 = 1s 技术模式分为向上计数模式,向下计数模式,和中央对齐计数模式 。(通过控制寄存器来设置) 应用 同样是使LED灯 亮一秒 灭一秒 循环 CubeMx配置
开启定时中断:写在初始化完成之后,while(1) 之前 HAL_TIM_Base_Start_IT(&htim2);定时中断回调函数 /* USER CODE BEGIN 4 */达到1s的时候 判断条件成立,对LED灯的电位进行翻转,实现一秒的亮与灭 程序下载到开发板上可以看到一个led灯一会亮 一会灭 也可以通过示波器来看PA4的输出情况 应用 使用SysTick(我感觉很好用 )或者普通计时器 实现 流水灯 (多个led灯循环显示) 实现计时器 (将板子运行时间的秒数显示到数码管上) 两个功能来回切换 (使用按键进行切换 ) 思路 在CubeMx上的配置其实都一样,主要是代码上的设计。
|
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1810 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1631 浏览 1 评论
1098 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
737 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1687 浏览 2 评论
1945浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
750浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
584浏览 3评论
604浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
568浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-29 14:30 , Processed in 0.853337 second(s), Total 77, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号