STM8|STM32 看门狗使用

发布者:独行于世最新更新时间:2017-02-06 来源: eefocus关键字:STM8  STM32  看门狗 手机看文章 扫描二维码
随时随地手机看文章

STM8和STM32都配备了独立看门狗,其作用之大不言而喻。以下为STM8及STM32的独立看门狗使用例:    
 

对于STM32单片机:

#define SYS_IWDG_OPEN        IWDG->KR=0xCCCC;

#define SYS_IWDG_FEED        IWDG->KR=0xAAAA;


void SystemIWDG_Config(uint32 OverTime)

{

    RCC->CSR|=RCC_CSR_LSION;

    while((RCC->CSR&RCC_CSR_LSIRDY)==0);

    IWDG->KR=0x5555;            //使能模块访问

    while(IWDG->SR&IWDG_SR_PVU);

    IWDG->PR=0x0006;            //256分频 40000/256=156HZ T=6.4ms

    while(IWDG->SR&IWDG_SR_RVU);

    IWDG->RLR=(OverTime*10)>>6;        //溢出时间

    IWDG->KR=0xAAAA;            //装载IWDG->RLR

}


 


对于STM8单片机: 


#define SYS_IWDG_OPEN        IWDG_KR=0xCC;

#define SYS_IWDG_FEED        IWDG_KR=0xAA;


void SystemIWDG_Config(void)   

{

    CLK_ICKCR|=S3;

    while((CLK_ICKCR&S4)==0);

    //STM8单片机需先执行0xCC指令,即先打开IWDG模块,否则IWDG工作不正常

    IWDG_KR=0xCC;                //启动看门狗

    IWDG_KR=0x55;                //使能模块访问

    IWDG_RLR=0xFF;                //溢出时间

    IWDG_PR=0x06;                //256分频 38000/256=148HZ T=6.7ms    

    IWDG_KR=0xAA;                                        //装载IWDG->RLR

}



使用:先在主程序中打开看门狗,在主循环或任务中喂狗,但千万别在中断中喂狗。


void main()

{

    ......

    SYS_IWDG_OPEN

    ......

    while(1){

     ......

     SYS_IWDG_FEED

     ------

    }

}



操作系统OS中喂狗一般安排在最高优先级任务中,并且保证此线程不断循环。


关键字:STM8  STM32  看门狗 引用地址:STM8|STM32 看门狗使用

上一篇:STM32 IAP 固件升级设计/U盘升级固件
下一篇:STM32单片机的IIC硬件编程---查询等待方式

推荐阅读最新更新时间:2024-03-16 15:32

STM8 配置看门狗的坑
首先祭出正确的打开方式。。 void IWDG_Init(void) //配置并启动看门狗 { IWDG- KR = 0xcc;//启动独立看门狗 IWDG- KR = 0x55;//写入解锁 IWDG- PR = 0x06;//256分频 IWDG- RLR = 0xff;//设置重载寄存器 IWDG- KR = 0xaa;//锁定并刷新 } void IWDG_Feed(void)//喂狗 { IWDG- KR = 0xaa; }
[单片机]
STM32下载方法
一、JLINK下载方法 1、硬件设置 Boot0,Boot1 = 0,*(测试通过) Boot0,Boot1 = 1,0或者0,1(未测试) 2、软件设置 MDK设置 ① 选择Project - Options for Target ... - Debug ② 点击Settings Debug子选项   注意速度不能太高,如果选的太高,在下载程序或者调试时可能出现“cannot load flash programming algorithm !”错误。 Flash Download子选项 二、ISP下载方法--使用串口下载   Boot0,Boot1 = 1,0,芯片从系统闪存里启动Bootloader,执行系统预设
[单片机]
<font color='red'>STM32</font>下载方法
STM8学习笔记--ADC
STM8的ADC转换器有10位的分辨率。STM8的特殊之处在于,如果用户可接受较低的分辨率,则读转换结果的速度会加快;用户可通过选择相应的寄存器对齐方式,只读10位中的8位。配置左对齐或右对齐的寄存器ADC_CR2。 ADC开-关控制:通过置位ADC_CR1寄存器的ADON位来开启ADC。当首次置位ADON位时,ADC从低功耗模式唤醒。为了启动转换必须第二次使用写指令来置位ADC_CR1寄存器的ADON位。如果转换频繁,就一直保持ADC上电,这样就省去了7us上电稳定时间,如果ADON位清零进入低功耗模式,则需要两次写ADON来开启转换。 写程序按以下时序图操作: 单次转换模式:这种模式下,AD
[单片机]
MSP430单片机看门狗实用方法
以MSP430F2274为例。其中汇编实现采用的是IAR汇编,CCE汇编实现稍作修改即可。 1. 看门狗有三种工作模式:停止模式,计时器模式,看门狗模式。 2. 其中后两种模式可以选择的时钟源有:SMCLK和ACLK。 3. 在使用后两种模式时候要注意单片机所处的状态下看门狗能否工作,如单片机处在LPM3时候只有ACLK时钟,处在LPM4下,没有时钟可以使用。 4. 看门狗模式的使用方法:当看门狗计数溢出时,程序复位。在程序中开启看门狗,在计数溢出前清空看门狗,或重置看门狗,以使其重新计数。若程序跑飞,看门狗可能没有被清空或重置,就会溢,使程序复位。 5. 在MSP430F2274中,看门狗模式下可以计时最长为1s
[单片机]
使用STM8 Nucleo-64开发板生成PWM信号
NUCLEO-8S208RB(基于STM8S208RBT6)和NUCLEO-8L152R8(基于STM8L152R8T6)开发板可用于评估所有STM8S系列和STM8L系列微控制器的主要特性。 本应用笔记简要介绍了如何使用TIM外设来生成三个PWM信号。 1 应用说明 本节描述了在NUCLEO-8S208RB或NUCLEO-8L152R8开发板上使用TIM外设生成三个PWM信号的硬件要求、应用程序的原理图和工作原理。 1.1 硬件要求 NUCLEO-8S208RB或NUCLEO-8L152R8开发板不需要额外的硬件。 需要一台示波器作为外部资源。 1.2 应用原理图 两块开发板的应用原理图如下图所示。 图1. ST
[单片机]
使用<font color='red'>STM8</font> Nucleo-64开发板生成PWM信号
MSP430学习小结1-看门狗的使用总结
看门狗定时器用来防止程序因供电电源、空间电磁干扰或其它原因引起的强烈干扰噪声而跑飞的事故。在很多单片机中都内置了看门狗,看门狗本身是一个定时器,当定时器溢出时即进行系统复位,因此需要在程序中对看门狗定时器进行清零,即常说的喂狗。 由于我用过AVR的单片机,和AVR的相比,MSP430的看门狗要灵活的多,首先默认看门狗是开着的,因此如果不使用看门狗的话要关闭,指令如下: WDTCTL = WDTPW + WDTHOLD 如果打开看门狗则需要在程序中清零,指令如下: WDTCTL=WDTPW+WDTCNTCL 这只是基本的应用,430的看门狗要稍微复杂一些,首先从IAR的头文件中看看定义了几种工作状态: /* WDT-interva
[单片机]
STM8的GPIO各模式
[单片机]
<font color='red'>STM8</font>的GPIO各模式
基于STM32从零写操作系统系列---熟悉win+linux交叉编译环境
本章将讲述交叉编译环境的学习,环境平台是ubuntu,工具链是gcc-arm-none-eabi。 目的: 熟悉交叉编译环境,了解如何下载BIN格式的程序文件到单片机。 实验1: 一个简单的交叉编译与程序下载过程 环境搭建(以我的平台为例): 安装win7 64位系统,具体教程可百度 在windows系统上安装VMware虚拟机,具体教程可百度 在虚拟机上新建虚拟机,安装ubuntu系统 在ubuntu系统使用命令安装make(如果没有),gcc-arm-none-eabi交叉编译工具 在windows系统上安装ST-Link Utility软件,用于下载bin格式文件到是stm32单片机 在windows系统上安装编
[单片机]
基于<font color='red'>STM32</font>从零写操作系统系列---熟悉win+linux交叉编译环境
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved