你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32f103单片机(四)——定时器中断

[复制链接]
STMCU小助手 发布时间:2021-1-8 11:16
STM32f103单片机(四)——定时器中断

# \6 I6 p) K3 F* I0 h4 z+ a
% J5 `0 }9 v7 r. P
     以定时器500毫秒LED灯闪烁1次为例,用TIM3定时器。
5 `  l6 U0 h+ |8 O
STM32一共有8个定时器,其中TIM1、TIM8是高级定时器,它是由一个16位自动装载计数器组成,它由一个可编程的预分频器驱动,适合很多用途,包含测量输入信号的脉冲宽度(输入捕获),或者产生输出波形(输出比较、PWM、嵌入死区时间的互补PWM等)。使用定时器预分频器和RCC时钟控制预分频器,可以实现脉冲宽度和波形周期从几微秒到几个毫秒的调节。TIM2、3、4、5是通用定时器,TIM6和TIM7是基本定时器,基本定时器特别的可以为数模转化DAC提供时钟。他在芯片内部直接连接到DAC并通过触发输出直接驱动DAC,他们都是相互独立的。

1 V' ~5 J( z* m9 w
这里我以定时器500毫秒LED灯闪烁1次,这里需要用到的库有如下:
2.1.png
  J( z0 ]& w3 d6 P
还需要用到,算是应用这个单片机的应用层:
2.2.png

& O4 A" ]- {9 n! F: s/ [# F
同时要写一些中间层的函数。
2.3.png
" ?* C) g! |; k/ ^4 n
和之前驱动串口类似。

* i5 E" L2 U. ?) a
流程图:
2.4.png

- B6 C; M6 f2 L4 g/ Y% z
1、IO的初始化
2.5.png
& V) x% Y# K% n) n; U: c! M
2、定时器的初始化
: q1 E$ L# d7 Z3 X. n1 ^
首先还是根据时钟树来找到选用的定时器的时钟
2.6.png
, ~" V/ g! ]- A( I5 k8 V. u
再来读stm32f10x_tim.c里的函数,根据库进行配置。
2.7.png
2.8.png
2.9.png
& E& a" k5 p6 Y4 ]3 M" v$ ^
接着继续设置为定时器中断
2.10.png

  e8 ]$ b: K8 ]  s2 d/ F# ], `2 Q% [* r! R
3、对中断进行配置并设置优先级
2.11.png
. p' d% o6 W9 Q3 F0 z, ^# }# [
4、定时器中断服务函数编写
2.12.png

7 U+ e7 F9 w- o
8 C: B* x1 V6 J% z6 Z
5、关联中断服务和中断响应函数

( e$ b) F! Z$ J( `, u/ g. X( n& Q
把中断服务函数与中断响应函数连接起来,在stm32f10x.h中添加函数void void Time_IntHandle(void);在stm32f10x.c的相应中断入口中添加Time_IntHandle()
2.13.png
8 @' f! V2 l4 ~1 g9 u

2 L# q: A3 ]6 Y$ P/ F, D' G
6、初始化函数写入主函数
2.14.png

) t: l! c' ~, b. D
好了,定时器就总结完了。最后说说昨天我干了什么,昨天听滴滴的讲座听的我热血沸腾,车辆的调度,丰富的数据,活地图,每5分钟可以实施的跟新一次地图,安全的分析预测,在嘉定的自动驾驶体验,智能交通,疫情期间武汉2万医护人员500万次服务,以及对未来自动驾驶计划和展望,都透露着高科技和企业的责任心,很荣幸处在这个时代,也很荣辛还有机会可以去感受这些变革。

5 ~4 @8 {8 q! V. J% `. J
文章出处: 菜鸟硬件工程师小廖的成长日记

' T% X1 t" H& y. N3 q- z
& v5 r! _' [% Z
赞 收藏 评论0 发布时间:2021-1-8 11:16

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版