【IAR工程】STM8S208RB基于ST标准库独立看门狗(IWDG)

这篇具有很好参考价值的文章主要介绍了【IAR工程】STM8S208RB基于ST标准库独立看门狗(IWDG)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【IAR工程】STM8S208RB基于ST标准库独立看门狗(IWDG)


📍相关篇《【IAR工程】STM8S208RB基于ST标准库下GPIO点灯示例》

  • 🌿《【IAR工程】STM8S208RB基于ST标准库下EXTI外部中断》
  • 🌿《【IAR工程】STM8S208RB基于ST标准库蜂鸣器(BEEP)驱动》
  • 🌿《【IAR工程】STM8S208RB基于ST标准库下自动唤醒(AWU)》
  • 🔖基于ST STM8S/A标准外设库:STSW-STM8069,版本号:2.3.1
  • 📌STSW-STM8069官方资源下载地址:https://www.st.com/zh/embedded-software/stsw-stm8069.html
  • 🔧IAR编译器版本:IAR Assembler for STMicroelectronics STM8 3.11.1
  • 📌STM8S207/208RBT6最小系统板:https://oshwhub.com/perseverance51/stm8s207rbt6-kai-fa-ban
  • 🌴中断向量表
    【IAR工程】STM8S208RB基于ST标准库独立看门狗(IWDG)

📑独立看门狗(IWDG)

独立看门狗模块可以用于解决处理器因为硬件或软件的故障所发生的错误。它由一个内部的128kHz的LSI阻容振荡器作为时钟源驱动,因此即使是主时钟失效时它仍然照常工作。

  • 🔰硬件看门狗功能
    如果在IWDG_HW选择字节中使能了硬件看门狗的功能,在芯片上电时看门狗的功能被自动开启,如果软件不能及时操作键寄存器,则在计数器达到0x00时产生复位.

  • 🔨OPTION Byte选项字节
    【IAR工程】STM8S208RB基于ST标准库独立看门狗(IWDG)
    【IAR工程】STM8S208RB基于ST标准库独立看门狗(IWDG)

🔧超时周期和分频系数

  • 超时周期由计数器数值和时钟预分频器决定,下表列出了它们的数值。

【IAR工程】STM8S208RB基于ST标准库独立看门狗(IWDG)

🔖从上表图可知,超时周期长短由分频系数决定,分频系数越大,那么超时周期就越长,最多256分频,对应的时间周期是1.02S文章来源地址https://www.toymoban.com/news/detail-405124.html

🛠独立看门狗配置函数

/*******************************************************************************
**函数名称:void IWDG_Init()
**功能描述:初始化独立看门狗
**入口参数:无
**输出:无
看门狗时钟源:IWDG LSI = 128KHz/2 =64KHz
f = 64KHZ / 256 = 250Hz;T(周期)= 1/f =0.004S
- 重装载值:0xfa ->0.004S * 250 = 1S(秒)
- 最大重装载值 0xff ->0.004S * 252 = 1.02S(秒)
- 重装载值决定喂狗频率
*******************************************************************************/
 void IWDG_Init( void )
{
    IWDG->KR = 0xCC;//启动IWDG
    IWDG->KR = 0x55;//解除PR以及RLR的写保护
    IWDG->RLR = 0xff;//看门狗计数器重装载数值:250,max=0xff(255)
    IWDG->PR = 0x06;//分频系数256,最长超时时间:1.024S
    IWDG->KR = 0xaa;//刷新IWDG

    //先写0XCC,后写0X55,再写键值,
//    IWDG_Enable();//启动IWDG
//   IWDG_WriteAccessCmd( IWDG_WriteAccess_Enable );//解除PR以及RLR的写保护
//    IWDG_SetReload( 0xff );    //重载寄存器写入255
//    IWDG_SetPrescaler( IWDG_Prescaler_256 ); //64KHZ / 256 = 0.004S
//    IWDG_ReloadCounter();//刷新IWDG
  
}

📝主程序代码

  • 🔖在没有配置OPTION Byte选项字节的情况下,默认是软件开启方式。如果需要硬件开启的话需要配置OPTION Byte选项字节,并且在后面的烧写程序当中都要在看门狗复位前进行喂狗,否则超时就会复位,推荐还是软件开启方式。
/**************************************************************************************
实验现象:	开始LED1指示灯亮一秒后熄灭,在循环内不断喂狗,如果未在规定时间喂狗将产生复位,复位后程序
			从头开始执行,即LED1指示灯亮一秒后熄灭。没有被复位下,LED2正常1s频率闪烁。

接线说明:	1,STM8S单片机-->LED1
		   		PC7-->LED1
                                PC6-->LED2

注意事项:1、点击“Download active application”按钮,程序下载完成后,即可运行程序。


***************************************************************************************/

#include "stm8s.h"      /*  添加库函数头文件 */
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "time.h"
#include "iwdg.h"
#include <stdio.h>


/* 主函数 */
int main( void )
{

    disableInterrupts();    //关闭系统中断
    //内部时钟为1分频 = 16Mhz
    CLK_SYSCLKConfig( CLK_PRESCALER_HSIDIV1 );
    USART1_Init( 9600 ); //初始化USART1 , 并设置波特率为9600
    printf( "Hello World \r\n" );
    LED_Init();
    TIM2_Init( TIM2_PRESCALER_1, 16000 );
    LED1_ON();
    TIM2_DelayMs( 1000 );
    LED1_OFF();
    /* Clear IWDGF Flag */
//   RST_ClearFlag( RST_FLAG_IWDGF );
    IWDG_Init();//1.024秒后则会产生复位
    enableInterrupts();     //使能系统中断
    while( 1 )
    {      
        /* Reload IWDG counter */
        IWDG->KR = 0xAA;//喂狗防止系统复位
//       IWDG_ReloadCounter();  //喂狗防止系统复位
        LED2_TOGGLE;
        delay_ms( 978 ); //延时978ms秒,对独立看门狗进行喂狗,防止系统复位
//       TIM2_DelayMs( 965 );//实际延时时间:980ms
    }
}

//是一个宏定义;在固件库中,它的作用就是检测传递给函数的参数是否是有效的参数
void assert_failed( u8* file, u32 line )
{
    while ( 1 )
    {

    }
}

📚工程源码

  • 🔖IAR对中文路径不友好,不要将工程解压在带有中文字符路径的文件夹内直接打开工程编译,这样会导致IAR内部检索文件路径将消耗大量CPU资源。
链接: https://pan.baidu.com/s/1XcTRAnKCM48k1F0o8G6lBw
提取码: hv4u

到了这里,关于【IAR工程】STM8S208RB基于ST标准库独立看门狗(IWDG)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • IAR开发环境的安装、配置和新建STM32工程模板

    瑞典著名软件开发商IAR Systems公司2014年推出了最新版本IAR Embedded Workbench For ARM V7.1 (简称IAR EWARM V7.1),它是一种增强型一体化开发平台,其中完全集成了开发嵌入式系统所需要的文件编辑、项目管理、编译、链接和调试工具。IAR公司独具特色的CSPY调试器,不仅可以在系统开发

    2024年02月14日
    浏览(41)
  • STM32G431RB--基于HAL库(蓝桥杯嵌入式赛前梳理)

    明天就进行蓝桥杯的比赛了,最后一天再重新梳理一下各个模块的使用和代码的编写。 如果各个模块的MX配置是根据我之前发的来的,那么这篇文章中的代码完全适用;如不是,原理部分也是相同的,代码部分适用,可以自行判断,作为一个参考。 引脚: 1.控制LED灯亮灭时需

    2023年04月08日
    浏览(93)
  • STM8学习笔记1:STM8简介

    1.1 STM8简介 STM8是意法半导体下的一款8位单片机,根据应用场合不同,分为三个系列,STM8S、STM8L和STM8A。 STM8S系列:针对工业应用和消费电子领域 STM8L系列:针对超低功耗领域。大约1MHz的工作电流为200uA. STM8A系列:针对汽车应用。耐高温,最高温度达到145度。 我在咸鱼40入手

    2024年02月11日
    浏览(41)
  • 嵌入式——新建STM32工程(标准库)

    目录 一、初识标准库 1.CMSIS标准及库层级关系 2.库文件介绍 (1)Libraries文件夹 ①CMSIS文件夹 ②STM32F10x_Std_Periph_Driver文件夹 ③ 在用库建立一个完整的工程时,还需要添加stm32f10x_it.c、 stm32f10x_conf.h 和 system_stm32f10x.c文件 (2)Project文件夹 (3)Utilities文件夹 3.库各文件之间的关

    2024年01月23日
    浏览(53)
  • 【电赛-软件】基于ST官方插件 配置VScode开发STM32

    基于ST官方插件 配置VScode开发STM32 先决条件: 安装插件 插件使用 创建工程 导入工程 编译工程 调试 官方链接:https://marketplace.visualstudio.com/items?itemName=stmicroelectronics.stm32-vscode-extension。 ST官方论坛:https://community.st.com/s/topic/0TO3W00000006cJWAQ/vscode-for-stm32。 需要提前安装 STM32Cu

    2024年02月05日
    浏览(39)
  • STM32F103标准库开发:Keil5新建STM32工程

    首先需要搭建Keil5编译环境,才可以新建STM32工程。 Keil5编译环境搭建流程----STM32和GD32 新建一个文件夹 template 在文件夹template里面新建四个文件 (1) CMSIS : 存放内核驱动程序和启动引导文件 (2) FWLIB :存放库函数文件 (3) Project :存放工程文件 (4) User : 存放用户程

    2023年04月08日
    浏览(69)
  • ST官方基于米尔STM32MP135开发板培训课程(一)

    本文将以Myirtech的MYD-YF13X以及STM32MP135F-DK为例,讲解如何使用STM32CubeMX结合Developer package实现最小系统启动。 a.Developer package下载: ‍https://www.st.com/en/embedded-software/stm32mp1dev.html‍ b.解压后进入source目录:  c.源码准备(可以根据每一个source目录下的README.HOW_TO.txt中第三点准备)

    2024年02月15日
    浏览(43)
  • STM32F103标准外设库—— 新建工程与库函数(四)

     个人名片: 🦁作者简介:一名喜欢分享和记录学习的在校大学生 🐯个人主页:妄北y 🐧个人QQ:2061314755 🐻个人邮箱:2061314755@qq.com 🦉个人WeChat:Vir2021GKBS 🐼 本文由妄北y原创,首发CSDN 🎊🎊🎊 🐨座右铭:大多数人想要改造这个世界,但却罕有人想改造自己。 专栏导

    2024年01月19日
    浏览(42)
  • STM32——STM32F401x系列标准库的下载+环境搭建+建工程步骤(更完整)

    1.STM32标准库的官网下载网站https://www.st.com/content/st_com/en.html 2. 3. 4. 5. 6. 7.点击之后下滑 8.选择自己需要的版本下载 大致步骤同之前我写的一篇STM32——建工程差不多,但是当时是现成的标准库文件,芯片是STM32F103系列的,下面我重写一次,芯片为STM32F401X,当然本篇文章几乎适

    2024年02月14日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包