理论教育 基于物联网的STM32单片机实践:定时器应用与方波输出

基于物联网的STM32单片机实践:定时器应用与方波输出

时间:2023-11-09 理论教育 版权反馈
【摘要】:定时器功能强大,内容繁多,从《STM32F10xxx参考手册》讲述定时器的内容多达100页以上。使用定时器优点不但定时精度高,而且一旦开启定时器,CPU就可以继续执行其他程序,只有定时时间到,收到定时器中断请求才暂停当前程序,去响应执行中断服务程序。如4.2章节图4.7所示,使用定时器,完成三个LED循环闪亮,间隔1秒,即实现如图4.13所示的方波。图4.13三个LED输出方波时序图源程序代码如下所述。

基于物联网的STM32单片机实践:定时器应用与方波输出

定时器功能强大,内容繁多,从《STM32F10xxx参考手册》讲述定时器的内容多达100页以上。为了便于学习,本章节选用实例分析讲述。

例4.2用延时方式实现了三个LED循环闪亮,间隔时间约0.5秒。对于软件延时很难实现精确延时,同时在执行延时程序时占用CPU,程序效率很低。使用定时器优点不但定时精度高,而且一旦开启定时器,CPU就可以继续执行其他程序,只有定时时间到,收到定时器中断请求才暂停当前程序,去响应执行中断服务程序。执行完后中断服务程序自动返回,继续执行暂停了的当前程序,效率高。

【例4.5】如4.2章节图4.7所示,使用定时器(TIM3),完成三个LED循环闪亮,间隔1秒,即实现如图4.13所示的方波。

图4.13 三个LED输出方波时序图

源程序代码如下所述。

说明:

本例题定时为1秒,如果不是1秒,又该如何设置呢?

定时器的定时功能可通过以下公式来实现:(www.daowen.com)

计数脉冲数量=时间×输入时钟频率

其中输入时钟频率一般指系统时钟分频后的时钟,计数脉冲数量为分频后的脉冲数量,时间为指定的定时时间。

将固件库定时器配置结构体相关成员代入后得到如下公式:

TIM_Period取值范围为0~65535

TIM_Prescaler取值范围为0~65535

假设定时时间为10秒,系统时钟为72MHz;

TIM_Prescaler+1取值为36000,

则:TIM_Period+1=20000

注意:TIM_Period、TIM_Prescaler取值不能超限,若定时一个很长的时间,可使用允许的定时时间,通过对定时中断次数计数的方式来实现长时间的定时。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈