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 看门狗使用
推荐阅读最新更新时间: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,执行系统预设
[单片机]
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
[单片机]
MSP430学习小结1-看门狗的使用总结
看门狗定时器用来防止程序因供电电源、空间电磁干扰或其它原因引起的强烈干扰噪声而跑飞的事故。在很多单片机中都内置了看门狗,看门狗本身是一个定时器,当定时器溢出时即进行系统复位,因此需要在程序中对看门狗定时器进行清零,即常说的喂狗。 由于我用过AVR的单片机,和AVR的相比,MSP430的看门狗要灵活的多,首先默认看门狗是开着的,因此如果不使用看门狗的话要关闭,指令如下: WDTCTL = WDTPW + WDTHOLD 如果打开看门狗则需要在程序中清零,指令如下: WDTCTL=WDTPW+WDTCNTCL 这只是基本的应用,430的看门狗要稍微复杂一些,首先从IAR的头文件中看看定义了几种工作状态: /* WDT-interva
[单片机]
基于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系统上安装编
[单片机]