STM32F103单片机学习笔记(4):定时器中断

控制/MCU

1840人已加入

描述

以定时器500毫秒LED灯闪烁1次为例,用TIM3定时器。

STM32一共有8个定时器,其中TIM1、TIM8是高级定时器,它是由一个16位自动装载计数器组成,它由一个可编程的预分频器驱动,适合很多用途,包含测量输入信号的脉冲宽度(输入捕获),或者产生输出波形(输出比较、PWM、嵌入死区时间的互补PWM等)。使用定时器预分频器和RCC时钟控制预分频器,可以实现脉冲宽度和波形周期从几微秒到几个毫秒的调节。TIM2、3、4、5是通用定时器,TIM6和TIM7是基本定时器,基本定时器特别的可以为数模转化DAC提供时钟。他在芯片内部直接连接到DAC并通过触发输出直接驱动DAC,他们都是相互独立的。

这里我以定时器500毫秒LED灯闪烁1次,这里需要用到的库有如下:

dac

还需要用到,算是应用这个单片机的应用层:

dac

同时要写一些中间层的函数。

dac

和之前驱动串口类似。

流程图:

dac

1、IO的初始化

dac

2、定时器的初始化

首先还是根据时钟树来找到选用的定时器的时钟

dac

再来读stm32f10x_tim.c里的函数,根据库进行配置。

dac

dac

dac

接着继续设置为定时器中断

dac

3、对中断进行配置并设置优先级

dac

4、定时器中断服务函数编写

dac

5、关联中断服务和中断响应函数

把中断服务函数与中断响应函数连接起来,在stm32f10x.h中添加函数void void Time_IntHandle(void);在stm32f10x.c的相应中断入口中添加Time_IntHandle()

dac

6、初始化函数写入主函数

dac

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分