STM8L探索套件学习笔记-独立看门狗IWDG(十六)

发布者:春水碧于天最新更新时间:2015-12-21 来源: eefocus关键字:STM8L  学习笔记  独立看门狗  IWDG 手机看文章 扫描二维码
随时随地手机看文章
STM8L 的独立看门狗由内部专门的 38Khz 低速时钟驱动,即使主时钟发生故障,它也仍然有效。这里需要注意独立看门狗的时钟并不是准确的 38Khz,只是我们在估算的时候,以 38Khz 的频率来计算,看门狗对时间的要求不是很精确,所以,时钟有些偏差,都是可以接受的。根据分频系统和看门狗计数值可以设置独立看门狗的复位时间,范围从0.1ms~1724.63ms
 
例程展示如何重载IWDG计数值,IWDG的时间设置为214.7ms。程序采用“Refresh”变量来使能IWDG重载计数值仿真IWDG复位,并且板上LED4翻转。当按键按下,模拟一次软件错误造成程序没有喂狗,从而发生复位。如果IWDG复位,系统启动后LED3会翻转8次,主代码如下:
void main(void)
{
  uint8_t Index;
  GPIO_Init(LED3_PORT,LED3_PIN,GPIO_Mode_Out_PP_Low_Fast);
  //输出低电平-高速10M
  GPIO_Init(LED4_PORT,LED4_PIN,GPIO_Mode_Out_PP_Low_Fast);
  //输出低电平-高速10M
  GPIO_Init(KEY_PORT,KEY_PIN,GPIO_Mode_In_FL_IT);
  //输入浮空-中断
  /* Set PC1 sensitivity to falling edge and low level 下降沿低电平触发*/
  EXTI_SetPinSensitivity(EXTI_Pin_1, EXTI_Trigger_Falling_Low);
  /* Check if the MCU has resumed from IWDG reset */
  if (RST_GetFlagStatus(RST_FLAG_IWDGF) != RESET)
  {
    /* IWDGF flag set */
    /* Toggle LED3 */
    for (Index = 7; Index != 0; Index--)
    {
      GPIO_ToggleBits(LED3_PORT,LED3_PIN);
      Delay(0x7FFF);
    }
    /* Clear IWDGF Flag */
    RST_ClearFlag(RST_FLAG_IWDGF);
  }
 
  /* IWDG configuration: IWDG is clocked by LSI = 38KHz */
  /* IWDG timeout equal to 214.7 ms (the timeout may varies due to LSI frequency dispersion) */
  /* IWDG timeout = (RELOAD_VALUE + 1) * Prescaler / LSI = (254 + 1) * 32 / 38 000 = 214.7 ms */
  /* Enable the IWDG */
  IWDG_Enable();
  /* Enable write access to IWDG_PR and IWDG_RLR registers */
  IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);
  /* Set IWDG timeout */
  IWDG_SetPrescaler(IWDG_Prescaler_32);
  IWDG_SetReload(RELOAD_VALUE);
  /* Refresh IWDG */
  IWDG_ReloadCounter();
 
  /* enable interrupts by switching to level 0 */
  enableInterrupts();
 
  while (1)
  {
    /* As Refresh is equal to ENABLE no IWDG reset will occur. When Refresh is
       equal to DISABLE, the IWDG counter isn't refreshed and IWDG reset will occur. */
    if (Refresh != 0)
    {
      /* Reload IWDG counter */
      IWDG_ReloadCounter();
    }
    /* Toggle LED4 */
    GPIO_ToggleBits(LED4_PORT,LED4_PIN);
    Delay(0x6FFF);
  }
}
关键字:STM8L  学习笔记  独立看门狗  IWDG 引用地址:STM8L探索套件学习笔记-独立看门狗IWDG(十六)

上一篇:STM8L探索套件学习笔记-窗口看门狗WWDG(十七)
下一篇:STM8L探索套件学习笔记-ADC_DMA(十五)

推荐阅读最新更新时间:2024-03-16 14:40

STM32学习笔记之USB库文件分析
主要分析下其他一些文件: usb_core.c、 usb_init.c、 usb_int.c、 usb_mem.c、 usb_reg.c usb_sil.c 1、 usb_core.c -- 这个文件从名字上就可知,这是usb的核心文件。这个文件主要是USB在枚举过程中的一些功能函数。比如控制传输的建立阶段、数据阶段、状态阶段的各种标准请求函数,各个阶段的处理函数等。 uint8_t Setup0_Process(void); uint8_t Post0_Process(void); uint8_t Out0_Process(void); uint8_t In0_Process(void); RESULT Standard_
[单片机]
STM32学习笔记——测试闪灯程序
//所使用的是STM32F103C8共有48个管脚,共有两组GPIO,为GPIOA和GPIOB,每组有从0到15共16个引脚 //注意对STM32F103C8的操作和对库函数的使用,在使用时,要时刻参考《STM32F10xxx使用手册》和《STM32的函数说明》这两个文档 #include stm32f10x_lib.h GPIO_InitTypeDef GPIO_InitStructure; //定义GPIO配置的结构体变量 包括GPIO引脚,引脚速度,引脚模式 ErrorStatus HSEStartUpStatus; //枚举类型,错误状态变量定义 存储外部高速时钟HSE状态
[单片机]
STM32学习笔记---SST25VF016BSPI实验
继做了CAN实验后,继续进行第16个实验-SST25VF016BSPI实验,此实验利用SPI1来调试2M的FLASH-SST25VF016B,通过向SST写入特定的一个字符串后,然后再读出来,最后一一判断,如果没有差错的话,就证明是正确的了,否则就写入出现错误了。正确了就在串口终端上显示字符串信息,还有板子上LED3亮。 //++++++++++++写使能 +++++++++++++++++ void wen(void) { Select_Flash(); SPI_Flash_SendByte(0x06); NotSelect_Flash(); } //+++++ +++++++ 写禁止 ++++++++++++++++++ vo
[单片机]
STM32<font color='red'>学习</font><font color='red'>笔记</font>---SST25VF016BSPI实验
STM8L探索套件学习笔记-CLK时钟控制(四)
STM8L继承了STM32的时钟架构,分为四类时钟:HSI(高速内部RC 16M),HSE(高速外部1-16M),LSI(低速内部38K),LSE(低速外部32768),没有PLL倍频器,也是采用控制外设的时钟开关降低功耗。复位默认采用HSI高速内部时钟,8分频也就是2MHZ。时钟还能通过CCO寄存器配置,设置为输出。输出的I/O必须配置为输入推挽上拉/下拉模式。 现在我们就使用时钟输出的功能CCO,输出HSI的时钟看看 void main(void) { GPIO_Init(GPIOC,GPIO_Pin_4,GPIO_Mode_Out_PP_High_Fast); //CLK_CCOConfig(CLK_CCOSour
[单片机]
STM32基于固件库学习笔记(10)窗口看门狗
窗口看门狗 (WWDG) 小容量产品是指闪存存储器容量在16K至32K字节之间的STM32F101xx、STM32F102xx和STM32F103xx微控制器。 中容量产品是指闪存存储器容量在64K至128K字节之间的STM32F101xx、STM32F102xx和STM32F103xx微控制器。 大容量产品是指闪存存储器容量在256K至512K字节之间的STM32F101xx和STM32F103xx微控制器。 互联型产品是指STM32F105xx和STM32F107xx微控制器。 WWDG 简介 窗口看门狗通常被用来监测,由外部干扰或不可预见的逻辑条件造成的应用程序背离正常的运行序列而产生的软件故障。除非递减计数
[单片机]
STM32学习笔记--------GPIO
1、概述 GPIO,即通用I/O(输入/输出)端口,是STM32可控制的引脚。STM32芯片的GPIO引脚与外部设备连接起来,可实现与外部通讯、控制外部硬件或者采集外部硬件数据的功能。 STM32F103有7组IO。分别为GPIOA~GPIOG,每组IO有16个IO口,共有112个IO口。通常称为 PAx、PBx、PCx、PDx、PEx、PFx、PGx,其中x为0-15,F1系列是基于Cortex-M3内核 2、GPIO工作模式(暂时不做深入研究先用) ─ 输入浮空 ─ 输入上拉 ─ 输入下拉 ─ 模拟输入 ─ 开漏输出 ─ 推挽式输出 ─ 推挽式复用功能 ─ 开漏复用功能 3、GPIO使用 使用步骤 1.硬件时钟
[单片机]
STM32<font color='red'>学习</font><font color='red'>笔记</font>--------GPIO
STM32学习笔记之定时器的配置
实验目的: 让蜂鸣器每隔一秒响一次; 实验步骤: 实验程序: /************************led.c***********************/ #include stm32f4xx.h //在SYSTEM目录下可以找到 #include sys.h void LED_Init(void){ RCC- AHB1ENR |= 1 5; //使能GPIO端口的F时钟 GPIO_Set(GPIOF,PIN9|PIN10,GPIO_MODE_OUT,GPIO_OTYPE_PP,GPIO_SPEED_25M,GPIO_PUPD_PU);
[单片机]
STM32<font color='red'>学习</font><font color='red'>笔记</font>之定时器的配置
AM335x(TQ335x)学习笔记——Nand&&网卡驱动移植
移植完成声卡驱动之后本想再接再励,移植网卡驱动,但没想到的是TI维护的内核太健壮,移植网卡驱动跟之前移植按键驱动一样简单,Nand驱动也是如此,于是,本人将Nand和网卡放在同一篇文章中介绍。介绍之前先感慨一下:TI的维护的内核真的很健壮,DTS真的很强大。 1. Nand驱动移植 阅读TQ335x的原理图可知,TQ335x的Nand连接到了GPMC上,且与DTS中默认的配置吻合,此处不做任何修改,详情如下: nandflash_pins_s0: nandflash_pins_s0 { pinctrl-single,pins = 0x0 (PIN_INPUT_PULLUP | MUX_MODE0) /*
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

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

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