
前言/ m. D$ W$ p8 H2 a. _1 \ F 本文将介绍stm32定时器的使用。) m; w) [- p' w+ i t 一、定时器介绍. o/ y, @6 q; m2 t. W% d1 c 定时器是单片机内部的特殊功能模块。 在控制系统中,常常要求有一些实时时钟以实现定时或者延时控制,如定时中断、定时检测、定时扫描等等,也往往要求有计数器,对外部事件进行计数。 要实现定时或者延时功能,一般有三种方法:软件定时,不可编程硬件定时,可编程硬件定时。 3 ]; b! n; r+ u4 O$ y* K4 m 软件定时——让软件循环执行一段程序,程序本身并无执行目的,而是通过执行程序延时固定的时间,也就是以前的程序中经常使用的延时程序。这种方法降低了cpu的利用率。( ~) C; \& g" L$ N / z! U$ l- B3 d9 }& K/ K6 n 不可编程硬件定时——如外部芯片555 时基电路,通过外部阻容,达到一定的延时功能,改变阻容大小可以改变延时长度。这种定时器取决于硬件,设定好以后不能通过软件更改。9 b" u) S; k3 H2 b7 ]; M 可编程定时器——这种定时器的定时值可以通过软件确定和修改,使用灵活便捷。$ l, b2 g- z2 R0 E% b9 a9 Q 1 G2 l$ O& P3 U9 a, V+ n 二、CubeMX配置及工程代码讲解 1.CubeMX配置 1.选择单片机型号 ![]() 8 J5 Y( ?) Y( O/ P1 C 2.设置引脚功能 0 F9 u9 E/ J# X% ?6 H7 m( k ![]() ! c9 W8 U! k; e2 w& {3 ?; q' P 3.选择时钟源( r6 z( M3 N% M5 U ![]() 4.开启Debug仿真 ![]() 5.配置定时器! ]: T$ \! @) g: r ![]() ![]() 定时器定时时间简单计算方法:这里我们时钟树选择的时钟频率是72MHZ,用72MHZ/72/50000就得到了计数的频率然后再取倒数就是我们想要的定时时间了。 6.配置时钟树% b' |6 a& q& T$ M% `( A ![]() ; y3 ?& U2 Z6 L' G3 \9 G) l 7.创建工程 2 }6 X2 |( S- \2 G1 t$ w* R ![]() & W9 Y/ N* k8 L 2.代码讲解- u9 l3 h( o/ b, ^5 z; r" c
总结2 G0 R+ _4 h8 M+ \& B& ?8 O 本文简单讲述了定时器中断的使用,主要就是要注意中断回调函数的使用方法,以及打开定时器的方法。5 i' f: S% ~) z4 U9 p" {. r3 f4 R 9 h/ A" S2 X$ z9 [ . c* |- E. K* V% ^) B: g9 | |
基于定时器捕获测量脉宽的应用示例
狂欢三】STM32C031使用TIM定时器DMA方式实现WS2812彩灯输出(三)
【狂欢三】STM32C031使用TIM定时器DMA方式实现PWM输出(二)
【狂欢三】STM32C031使用TIM定时器PWM输出
stm32使用定时器触发dma传输,启动dma没反应的几种情况的解决方法
定时器剩余通道是否可以做PWM输出呢?
基于STM32双定时器+ADC+DMA实战经验分享
基于STM32的定时器触发ADC时可能遇到的情形
【NUCLEO-U545RE-Q评测】5. 基本计时器
基于STM32的定时器不按设定超时产生中断