stm32开发板小苗系列之十四.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

STM32开发板(小苗板)资料系列之十四——独立看门狗(IWDG)

:第九单片机

—看门狗简介

STM32内置了两个看门狗:独立看门狗和窗口看门狗,两个看门狗设备可用

来检测和解决由软件错误引起的故障。这一节主要介绍独立看门狗(IWDG),IWDG

最适合应用于那些需要看门狗主程序之外,能够完全独立工作,并且对

时间精度要求较低的场合。独立看门狗由的低速时钟(LSI)40kHz驱动,

时钟,只是估算的时候以40kHz的频率来计算,看门狗对时间的要求不是很精确。

二实验现象

本实验启动IWDG后,定时约5S需要喂狗一次;

程序开始时,LED1亮,延时一会后,LED1灭,然后LED2亮,在5S内按下

KEY1键(即喂狗),则LED2一直亮,LED1灭;

如果没有喂狗,则重新开始执行程序,LED1亮,LED1灭,LED2亮。

三实验例程讲解

main.c文件

23行SystemInit()函数是用于配置系统时钟的。在3.5版本的库的启动

文件中调用了在system_stm32f10x.c文件中的SystenmInit()函数配置系统

时钟,在旧版本的工程中需要用户进入main函数中自己调用SystemInit()函

数。本实验使用的是3.5版本的库,在这里调用与否都可以。

24行SYSTICK_Init()函数是初始化滴答时钟的,因为本实验使用到的延时

都是通过滴答时钟设置的,所以要设置该功能。

26行、27行代码,实验使用到按键和LED指示灯,所以要对连接按键和LED

的GPIO口进行初始化,配置其功能,具体配置怎样的功能,面的实验都有

过详细的介绍。

28行调用IWDG_Config()函数在IWDG.c文件中实现,下面再具体讲解该

函数中的代码。

下面的代码就是在没有喂狗的情况下,重复执行LED1点亮的过程。进入

while循环体后,如果按键KEY1按下(即喂狗),则LED2一直点亮,39行函数

IWDG_ReloadCounter()是调用的库函数,如果喂狗了的话,就重新装载计数器

的值。

IWDG.c文件

26行函数IWDG_WriteAccessCmd,是用使能对寄存器IWDG_PR和IWDG_RLR

的写操作,它的参数允许值如下(在STM32固件库手册可以找到)。

IWDG_PR预分频寄存器是用来写入选择计数器时钟的预分频的,IWDG_RLR

重装载寄存器是用来给看门狗计数器重装载值的,对于这两个寄存器具体操作可

查看STM32手册的独立看门狗章节。

27行函数IWDG_SetPrescaler()是设置预分频值的,,一共有七种,本例

程选择了最大分频,允许的参数取值范围如下,可查找STM32固件库手册。

28行函数IWDG_SetReload()是用来设置IWDG重装载值的,其允许取值范

围为0—0x0FFF。

29行函数IWDG_ReloadCounter()是用来按照IWDG重装载寄存器的值重装

载IWDG计数器的。

最后,调用IWDG_Enable()库函数,使能看门狗就可以了。

独立看门狗实验,到这里就结束了!

文档评论(0)

183****7931 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档