Proteus8.9 仿真STM32407ZGT6系列004_独立看门狗
- 格式:pdf
- 大小:728.63 KB
- 文档页数:7
什么是stm32看门狗?独立看门狗和窗口看门狗工作原理解析独立看门狗是限制喂狗时间在0-x内,x由你的相关窗口看门狗,所以称之为窗口就是因为其喂狗时间是一个有上下限的范围内,你可以通过设定相关寄存器,设定其上限时间和下限时间。
喂狗的时间不能过早也不能过晚。
窗口看门狗的上窗口就是配置寄存器WWDG->CFR里设定的W[6:0];下窗口是固定的0x40;WWDG_SetPrescaler(WWDG_Prescaler_8);void NVIC_Configuration(void)void EXTI_Configuration(void)在Stm32f10x_it.c文件中:void WWDG_IRQHandler(void)void EXTI9_5_IRQHandler(void)
{
if(EXTI_GetITStatus(EXTI_Line9) != RESET)
{
/* Turn off led connected to PC.07 */
GPIO_WriteBit(GPIOC, GPIO_Pin_7, Bit_RESET);
/* As EXTI line9 pending bit is not cleared, the CPU will execute indefinitely
this ISR and when the WWDG counter falls to 3Fh the WWDG reset occurs */
}
}。
如何设计STM32单片机独立看门狗程序?[导读]今天要学习的是独立看门狗,看门狗电路的应用,使单片机可以在无人状态下实现连续工作,其工作原理是:看门狗芯片和单片机的一个I/O引脚相连,该I/O 引脚通过程序控制它定时地往看门狗的这个引脚上送入高电平(或低电平),这一程序语句是分散地放在单片机其他控制语句中间的,一旦单片机由于干扰造成程序跑飞后而陷入某一程序段进入死循环状态时,写看门狗引脚的程序便不能被执行,这个时候,看门狗电路就会由于得不到单片机送来的信号,便在它和单片机复位引脚相连的引脚上送出一个复位信号,使单片机发生复位。
即程序从程序存储器的起始位置开始执行,这样便实现了单片机的自动复位。
今天要学习的是独立看门狗,看门狗电路的应用,使单片机可以在无人状态下实现连续工作,其工作原理是:看门狗芯片和单片机的一个I/O引脚相连,该I/O引脚通过程序控制它定时地往看门狗的这个引脚上送入高电平(或低电平),这一程序语句是分散地放在单片机其他控制语句中间的,一旦单片机由于干扰造成程序跑飞后而陷入某一程序段进入死循环状态时,写看门狗引脚的程序便不能被执行,这个时候,看门狗电路就会由于得不到单片机送来的信号,便在它和单片机复位引脚相连的引脚上送出一个复位信号,使单片机发生复位。
即程序从程序存储器的起始位置开始执行,这样便实现了单片机的自动复位。
1.1独立看门狗简介看门狗定时器 (WDT,Watch Dog Timer)是单片机的组成部分,它实际上是一个计数器,一般给看门狗一个数值,程序开始运行后看门狗开始倒计时。
如果程序运行正常,过一段时间CPU应发出指令让看门狗复位,重新开始计数,也就是所谓的“喂狗”。
如果看门狗减到0就认为程序没有正常工作,强制整个系统复位。
独立看门狗由专用低速时钟(LSI)驱动,计时主时钟发生故障它也仍然有效。
看门狗主要是用于在发生系统软件故障时,将系统复位。
也可以用于将系统从休眠或空闲模式唤醒。
PROTEUS仿真教程第一步:安装PROTEUS软件第二步:创建新项目在PROTEUS软件中,您可以创建新项目来开始您的电路仿真工作。
点击菜单栏中的“File”选项,选择“New Project”来创建一个新项目。
然后输入项目的名称并选择保存路径。
第三步:添加元件在PROTEUS软件中,您可以通过“Library”选项来选择各种电子元件,包括电阻、电容、电压源等。
点击“Library”选项,选择您需要的元件并将其拖动到工作区中。
连接元件之间的引脚以搭建电路。
第四步:设置仿真参数在搭建完电路后,您需要设置仿真参数。
点击菜单栏中的“Graph”选项,选择“Set Simulator Parameters”来设置仿真参数,包括仿真时间、步长等。
您还可以设置输出波形的显示格式和范围。
第五步:运行仿真设置好仿真参数后,点击菜单栏中的“Simulate”选项,选择“Run”来运行仿真。
PROTEUS将模拟您搭建的电路,并显示仿真结果。
您可以查看电压、电流等参数,并分析电路的工作情况。
第六步:调试电路在仿真过程中,您可能会发现电路存在问题,比如输出波形不符合预期,电流过大等。
您可以通过调试电路来解决这些问题。
尝试更改元件参数、连接方式等,并重新运行仿真来检查效果。
第七步:保存和导出仿真结果在完成仿真后,您可以保存仿真结果并导出到其他格式。
点击菜单栏中的“File”选项,选择“Save As”来保存仿真文件。
您还可以导出波形图、数据表等结果,以便后续分析和报告。
总结:本教程介绍了PROTEUS的基本功能和使用方法,帮助您快速上手该软件进行电路仿真工作。
通过创建新项目、添加元件、设置仿真参数、运行仿真、调试电路和保存结果,您可以轻松完成电路仿真工作。
希望本教程对您有所帮助,祝您在PROTEUS软件中取得成功!。
stm32 独立看门狗[操作寄存器+库函数]以单片机为核心的微型计算机系统中,单片机经常会受到来自外界电磁场的干扰。
造成程序跑飞,只是程序的正常运行状态被打断而进入死循环,从而使单片机控制的系统无法正常工作。
看门狗就是一种专门用于检测单片机程序运行状态的硬件结构。
stm32也是如此。
stm32 的独立看门狗由内部专门的40Khz低速时钟驱动,即使主时钟发生故障时,它也仍然有效。
这里需要注意的是独立看门狗的时钟是一个内部时钟,所以不是准确的40Khz,而是在30~60Khz之间的一个可变化的时钟,看门狗的时钟对时间的要求不是很精确,所以时钟有偏差可以接受。
本例直接操作寄存器实现验证独立看门狗的复位功能,设定一个800ms的喂狗时间,在主函数中实现LED闪烁,如果设定一个1s的延时,则触发独立看门狗复位,LED常亮。
库函数实现当外部中断发生(按下PA0按键),长时间不喂狗,引发独立看门狗复位时,向外用串口输出复位提示。
直接操作寄存器使用独立看门狗,需要了解一下寄存器:键值寄存器:(IWDG_KR)低16位有效的寄存器,只写寄存器,读出值恒为0x0000. 软件必须以一定的间隔写入0xAAAA,否则,当计数器为0时,看门狗会产生复位。
写入0x5555表示允许访问IWDG_PR和IWDG_RLR寄存器。
写入0xCCCC,启动看门狗工作。
预分频寄存器:(IWDG_PR)第三位有效寄存器,用于设置看门狗的分频系数,最低为4,最高位256.通过设置PR[2:0]:位来选择计数器时钟的预分频因子。
要改变预分频因子,IWDG_SR寄存器的PVU位必须为0。
000: 预分频因子=4100: 预分频因子=64001: 预分频因子=8101: 预分频因子=128010: 预分频因子=16110: 预分频因子=256011: 预分频因子=32111: 预分频因子=256重装载寄存器:(IWDG_RLR)低12位有效,RL[11:0]。
STM32程序设计案例教程:《STM32程序设计案例教程》是2019年电子工业出版社出版的图书,作者是欧启标。
内容简介:本书系统介绍了STM32程序设计的基础知识和实战技巧。
本书案例丰富、结构清晰、实用性强。
本书可作为高职高专院校电类专业学生的教材使用,也可供相关工程技术人员作为参考用书。
目录:项目1 STM32的开发步骤及STM32的GPIO端口的输出功能(1)任务1-1 控制一颗LED发光二极管闪烁(1)1.1 初步认识STM32的GPIO端口的输出功能(10)1.2 寄存器及其地址信息(15)1.3 volatile修饰符的使用及寄存器定义(17)习题1 (18)项目2 认识模块化编程(19)任务2-1 控制一颗LED发光二极管闪烁(19)2.1 模块化编程(24)2.2 其他C语言注意事项(25)2.2.1 用#define和typedef定义类型别名(25)2.2.2 一些常见的运算符问题(25)2.2.3 文件包含(26)2.2.4 关于注释(27)习题2 (28)项目3 认识STM32的存储器结构(29)任务3-1 LED0闪烁控制(29)3.1 存储器基础知识(30)3.2 Cortex-M4内核和STM32的存储器结构(31)3.2.1 Cortex-M4内核的存储器结构(31)3.2.2 STM32的存储器结构(33)3.2.3 位带(Bit Band)及位带别名区(Bit Band Alias)的关系(37)3.3 结构体在STM32中的应用(40)3.4 通用的I/O端口功能设置函数的设计(42)任务3-2 跑马灯的实现(44)习题3 (47)项目4 精确延时的实现—SysTick 定时器的原理及其应用(48)任务4-1 蜂鸣器发声控制(48)4.1 SysTick定时器介绍(52)4.2 嘀嗒定时器的延时应用(55)习题4 (57)项目5 机械按键的识别——初步认识GPIO端口的输入功能(58)任务5-1 识别机械按键的按下与弹起(58)5.1 STM32的GPIO端口的数据输入功能(65)5.1.1 GPIO端口位的数据输入通道(65)5.1.2 GPIO端口位的输入配置及上/下拉电阻使能(66)5.2 按键状态的判断(67)习题5 (68)项目6 深入了解STM32F407的时钟系统(69)6.1 STM32F4的时钟系统简介(69)6.2 STM32F4的时钟系统(69)6.3 STM32F4的系统时钟和各模块时钟(72)6.3.1 系统时钟SYSCLK (72)6.3.2 由SYSCLK模块提供时钟源的时钟(73)6.3.3 RCC模块的相关寄存器及其作用(75)习题6 (77)项目7 认识STM32的串口结构(78)任务7-1 使用STM32的串口向PC端发送字符串(78)7.1 串口基础知识(83)7.2 STM32的串口结构(84)7.3 引脚复用(90)7.4 端口初始化函数的重新组织(93)习题7 (95)项目8 STM32F407的中断管理(96)任务8-1 使用STM32的外部中断(96)8.1 内嵌中断向量控制器NVIC对中断的控制(102)8.1.1 STM32的中断源(102)8.1.2 STM32的中断使能控制(105)8.1.3 STM32的中断优先级(106)8.1.4 中断函数接口及中断函数的实现(112)8.2 外部中断(113)8.2.1 外部中断的中断源(113)8.2.2 外部中断的设置(114)习题8 (116)项目9 认识STM32的定时器(118)任务9-1 使用定时器中断控制LED0的闪烁(118)9.1 STM32的定时器概述(122)9.2 TIM3内部结构及其计数原理(122)9.2.1 TIM3的内部结构(122)9.2.2 STM32定时器的定时原理(124)9.3 定时器中断的实现(127)9.4 应用定时器产生PWM调制信号(128)9.4.1 TIM14的PWM调制原理(130)9.4.2 TIM14产生PWM信号涉及的寄存器(132)9.4.3 TIM14产生PWM信号的实现流程(133)任务9-2 使用TIM14产生周期为500s、占空比为80%的脉冲信号(134)习题9 (136)项目10 认识STM32的独立看门狗(137)任务10-1 认识STM32的独立看门狗的工作原理(137)10.1 看门狗电路概述(140)10.2 STM32F407的看门狗电路(140)10.3 独立看门狗相关的寄存器(141)10.4 独立看门狗的设置、启动及工作流程(142)习题10 (143)项目11 认识STM32F407的实时时钟(144)任务11-1 认识STM32的RTC (144)11.1 RTC实时时钟介绍(149)11.2 STM32的RTC的工作原理(149)11.3 STM32的RTC的操作步骤(153)习题11 (155)项目12 STM32迷你开发板电路设计(156)项目13 认识ARM处理器(161)13.1 架构简介(161)13.2 Cortex-M4的操作状态、工作模式和访问等级(161)13.3 数据长度(162)13.4 存储器大小端(162)13.5 Cortex-M4的寄存器(163)13.6 堆和栈的概念(166)13.7 内存分配(167)习题13 (170)项目14 汇编语言基础和Cortex-M4指令集(172)14.1 汇编语言基础(172)14.2 Cortex-M4的指令集(174)14.3 Cortex-M4的伪操作和伪指令(180)14.3.1 伪操作(180)14.3.2 伪指令(186)习题14 (187)项目15 认识启动文件startup_stm32f40_41xxx.s (188)习题15 (191)附录A STM32F407ZGT6的引脚结构与功能(192)附录B STM32F407ZGT6核心电路设计(203)附录C STM32F407ZGT6外围电路设计(204)附录D 关于编译信息的解释(205)参考文献(207)。