<!doctype html>窗口看门狗
html { }
:root { }
html { font-size: 14px; background-color: var(--bg-color); color: var(--text-color); font-family: "Helvetica Neue", Helvetica, Arial, sans-serif }
body { margin: 0px; padding: 0px; height: auto; bottom: 0px; top: 0px; left: 0px; right: 0px; font-size: 1rem; line-height: 1.42857; background: inherit }
iframe { margin: auto }
a.url { }
a:active,a:hover { outline: 0px }
.in-text-selection,::selection { background: var(--select-text-bg-color); color: var(--select-text-font-color) }
#write { margin: 0px auto; height: auto; width: inherit; position: relative; white-space: normal; padding-top: 40px }
#write.first-line-indent p { text-indent: 2em }
#write.first-line-indent li p,#write.first-line-indent p * { text-indent: 0px }
#write.first-line-indent li { margin-left: 2em }
.for-image #write { padding-left: 8px; padding-right: 8px }
body.typora-export { padding-left: 30px; padding-right: 30px }
.typora-export .footnote-line,.typora-export li,.typora-export p { white-space: pre-wrap }
#write li>figure:first-child { margin-top: -20px }
#write ol,#write ul { position: relative }
img { max-width: 100%; vertical-align: middle }
button,input,select,textarea { color: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; font-size: inherit; line-height: inherit; font-family: inherit }
input[type="checkbox"],input[type="radio"] { line-height: normal; padding: 0px }
*,::after,::before { }
#write h1,#write h2,#write h3,#write h4,#write h5,#write h6,#write p,#write pre { width: inherit }
#write h1,#write h2,#write h3,#write h4,#write h5,#write h6,#write p { position: relative }
h1,h2,h3,h4,h5,h6 { orphans: 2 }
p { orphans: 4 }
h1 { font-size: 2rem }
h2 { font-size: 1.8rem }
h3 { font-size: 1.6rem }
h4 { font-size: 1.4rem }
h5 { font-size: 1.2rem }
h6 { font-size: 1rem }
.md-math-block,.md-rawblock,h1,h2,h3,h4,h5,h6,p { margin-top: 1rem; margin-bottom: 1rem }
.hidden { display: none }
.md-blockmeta { color: rgb(204, 204, 204); font-weight: 700; font-style: italic }
a { cursor: pointer }
sup.md-footnote { padding: 2px 4px; background-color: rgba(238, 238, 238, 0.7); color: rgb(85, 85, 85); cursor: pointer }
sup.md-footnote a,sup.md-footnote a:hover { color: inherit; text-transform: inherit; text-decoration: inherit }
#write input[type="checkbox"] { cursor: pointer; width: inherit; height: inherit }
figure { margin: 1.2em 0px; max-width: calc(100% + 16px); padding: 0px }
figure>table { margin: 0px !important }
tr { }
thead { display: table-header-group }
table { border-collapse: collapse; border-spacing: 0px; width: 100%; overflow: auto; text-align: left }
table.md-table td { min-width: 32px }
.CodeMirror-gutters { border-right: 0px; background-color: inherit }
.CodeMirror { text-align: left }
.CodeMirror-placeholder { opacity: 0.3 }
.CodeMirror pre { padding: 0px 4px }
.CodeMirror-lines { padding: 0px }
div.hr:focus { cursor: none }
#write pre { white-space: pre-wrap }
#write.fences-no-line-wrapping pre { white-space: pre }
#write pre.ty-contain-cm { white-space: normal }
.CodeMirror-gutters { margin-right: 4px }
.md-fences { font-size: 0.9rem; display: block; text-align: left; overflow: visible; white-space: pre; background: inherit; position: relative !important }
.md-diagram-panel { width: 100%; margin-top: 10px; text-align: center; padding-top: 0px; padding-bottom: 8px }
#write .md-fences.mock-cm { white-space: pre-wrap }
.md-fences.md-fences-with-lineno { padding-left: 0px }
#write.fences-no-line-wrapping .md-fences.mock-cm { white-space: pre }
.md-fences.mock-cm.md-fences-with-lineno { padding-left: 8px }
.CodeMirror-line,twitterwidget { }
.footnotes { opacity: 0.8; font-size: 0.9rem; margin-top: 1em; margin-bottom: 1em }
.footnotes+.footnotes { margin-top: 0px }
.md-reset { margin: 0px; padding: 0px; border: 0px; outline: 0px; vertical-align: top; background: 0px 0px; text-decoration: none; float: none; position: static; width: auto; height: auto; white-space: nowrap; cursor: inherit; line-height: normal; font-weight: 400; text-align: left; direction: ltr }
li div { padding-top: 0px }
blockquote { margin: 1rem 0px }
li .mathjax-block,li p { margin: 0.5rem 0px }
li { margin: 0px; position: relative }
blockquote>:last-child { margin-bottom: 0px }
blockquote>:first-child,li>:first-child { margin-top: 0px }
.footnotes-area { color: rgb(136, 136, 136); margin-top: 0.714rem; padding-bottom: 0.143rem; white-space: normal }
#write .footnote-line { white-space: pre-wrap }
.footnote-line { margin-top: 0.714em; font-size: 0.7em }
a img,img a { cursor: pointer }
pre.md-meta-block { font-size: 0.8rem; min-height: 0.8rem; white-space: pre-wrap; background: rgb(204, 204, 204); display: block }
p>.md-image:only-child:not(.md-img-error) img,p>img:only-child { display: block; margin: auto }
p>.md-image:only-child { display: inline-block; width: 100% }
#write .MathJax_Display { margin: 0.8em 0px 0px }
.md-math-block { width: 100% }
.md-math-block:not(:empty)::after { display: none }
[contenteditable="true"]:active,[contenteditable="true"]:focus { outline: 0px }
.md-task-list-item { position: relative; list-style-type: none }
.task-list-item.md-task-list-item { padding-left: 0px }
.md-task-list-item>input { position: absolute; top: 0px; left: 0px; margin-left: -1.2em; margin-top: calc(1em - 10px) }
.math { font-size: 1rem }
.md-toc { min-height: 3.58rem; position: relative; font-size: 0.9rem }
.md-toc-content { position: relative; margin-left: 0px }
.md-toc-content::after,.md-toc::after { display: none }
.md-toc-item { display: block; color: rgb(65, 131, 196) }
.md-toc-item a { text-decoration: none }
.md-toc-inner:hover { text-decoration: underline }
.md-toc-inner { display: inline-block; cursor: pointer }
.md-toc-h1 .md-toc-inner { margin-left: 0px; font-weight: 700 }
.md-toc-h2 .md-toc-inner { margin-left: 2em }
.md-toc-h3 .md-toc-inner { margin-left: 4em }
.md-toc-h4 .md-toc-inner { margin-left: 6em }
.md-toc-h5 .md-toc-inner { margin-left: 8em }
.md-toc-h6 .md-toc-inner { margin-left: 10em }
a.md-toc-inner { font-size: inherit; font-style: inherit; font-weight: inherit; line-height: inherit }
.footnote-line a:not(.reversefootnote) { color: inherit }
.md-attr { display: none }
.md-fn-count::after { content: "." }
code,pre,samp,tt { font-family: var(--monospace) }
kbd { margin: 0px 0.1em; padding: 0.1em 0.6em; font-size: 0.8em; color: rgb(36, 39, 41); background: rgb(255, 255, 255); border: 1px solid rgb(173, 179, 185); white-space: nowrap; vertical-align: middle }
.md-comment { color: rgb(162, 127, 3); opacity: 0.8; font-family: var(--monospace) }
code { text-align: left; vertical-align: initial }
a.md-print-anchor { white-space: pre !important; border-width: initial !important; border-style: none !important; border-color: initial !important; display: inline-block !important; position: absolute !important; width: 1px !important; right: 0px !important; outline: 0px !important; background: 0px 0px !important; text-decoration: initial !important }
.md-inline-math .MathJax_SVG .noError { display: none !important }
.html-for-mac .inline-math-svg .MathJax_SVG { vertical-align: 0.2px }
.md-math-block .MathJax_SVG_Display { text-align: center; margin: 0px; position: relative; text-indent: 0px; max-width: none; max-height: none; min-height: 0px; min-width: 100%; width: auto; display: block !important }
.MathJax_SVG_Display,.md-inline-math .MathJax_SVG_Display { width: auto; margin: inherit; display: inline-block !important }
.MathJax_SVG .MJX-monospace { font-family: var(--monospace) }
.MathJax_SVG .MJX-sans-serif { font-family: sans-serif }
.MathJax_SVG { display: inline; font-style: normal; font-weight: 400; line-height: normal; text-indent: 0px; text-align: left; text-transform: none; letter-spacing: normal; word-spacing: normal; white-space: nowrap; float: none; direction: ltr; max-width: none; max-height: none; min-width: 0px; min-height: 0px; border: 0px; padding: 0px; margin: 0px }
.MathJax_SVG * { }
.MathJax_SVG_Display svg { vertical-align: middle !important; margin-bottom: 0px !important }
.os-windows.monocolor-emoji .md-emoji { font-family: "Segoe UI Symbol", sans-serif }
.md-diagram-panel>svg { max-width: 100% }
[lang="mermaid"] svg,[lang="flow"] svg { max-width: 100% }
[lang="mermaid"] .node text { font-size: 1rem }
table tr th { border-bottom: 0px }
video { max-width: 100%; display: block; margin: 0px auto }
iframe { max-width: 100%; width: 100%; border: none }
.highlight td,.highlight tr { border: 0px }
:root { }
pre { }
html { font-size: 16px }
html,body { background-color: rgb(243, 242, 238); font-family: "PT Serif", "Times New Roman", Times, serif; color: rgb(31, 9, 9); line-height: 1.5em }
#write { max-width: 40em }
ol li { list-style-type: decimal; list-style-position: outside }
ul li { list-style-type: disc; list-style-position: outside }
ol,ul { list-style: none }
blockquote,q { quotes: none }
blockquote::before,blockquote::after,q::before,q::after { content: none }
table { border-collapse: collapse; border-spacing: 0px }
h1,h2,h3,h4,h5,h6 { font-weight: bold }
h1 { font-size: 1.875em; line-height: 1.6em; margin-top: 2em }
h2,h3 { font-size: 1.3125em; line-height: 1.15; margin-top: 2.28571em; margin-bottom: 1.15em }
h3 { font-weight: normal }
h4 { font-size: 1.125em; margin-top: 2.67em }
h5,h6 { font-size: 1em }
h1 { border-bottom: 1px solid; margin-bottom: 1.875em; padding-bottom: 0.8125em }
a { text-decoration: none; color: rgb(6, 85, 136) }
a:hover,a:active { text-decoration: underline }
p,blockquote,.md-fences { margin-bottom: 1.5em }
h1,h2,h3,h4,h5,h6 { margin-bottom: 1.5em }
blockquote { font-style: italic; border-left: 5px solid; margin-left: 2em; padding-left: 1em }
ul,ol { margin: 0px 0px 1.5em 1.5em }
.md-meta,.md-before,.md-after { color: rgb(153, 153, 153) }
table { margin-bottom: 1.5em; font-size: 1em }
thead th,tfoot th { padding: 0.25em 0.25em 0.25em 0.4em; text-transform: uppercase }
th { text-align: left }
td { vertical-align: top; padding: 0.25em 0.25em 0.25em 0.4em }
code,.md-fences { background-color: rgb(218, 218, 218) }
code { padding-left: 2px; padding-right: 2px }
.md-fences { margin-left: 2em; margin-bottom: 3em; padding-left: 1ch; padding-right: 1ch }
pre,code,tt { font-size: 0.875em; line-height: 1.71429em }
h1 { line-height: 1.3em; font-weight: normal; margin-bottom: 0.5em }
p+ul,p+ol { margin-top: 0.5em }
h3+ul,h4+ul,h5+ul,h6+ul,h3+ol,h4+ol,h5+ol,h6+ol { margin-top: 0.5em }
li>ul,li>ol { margin-top: inherit; margin-bottom: 0px }
li ol>li { list-style-type: lower-alpha }
li li ol>li { list-style-type: lower-roman }
h2,h3 { margin-bottom: 0.75em }
hr { border-top: none; border-right: none; border-bottom: 1px solid; border-left: none }
h1 { border-color: rgb(197, 197, 197) }
blockquote { border-color: rgb(186, 186, 186); color: rgb(101, 101, 101) }
blockquote ul,blockquote ol { margin-left: 0px }
.ty-table-edit { background-color: transparent }
thead { background-color: rgb(218, 218, 218) }
tr:nth-child(2n) { background: rgb(232, 231, 231) }
hr { border-color: rgb(197, 197, 197) }
.task-list { padding-left: 1rem }
.md-task-list-item { padding-left: 1.5rem; list-style-type: none }
.md-task-list-item>input::before { content: "√"; display: inline-block; width: 1.25rem; height: 1.6rem; vertical-align: middle; text-align: center; color: rgb(221, 221, 221); background-color: rgb(243, 242, 238) }
.md-task-list-item>input:checked::before,.md-task-list-item>input[checked]::before { color: inherit }
#write pre.md-meta-block { min-height: 1.875rem; color: rgb(85, 85, 85); border: 0px; background: transparent; margin-left: 1em; margin-top: 1em }
.md-image>.md-meta { color: rgb(155, 81, 70) }
.md-image>.md-meta { font-family: Menlo, "Ubuntu Mono", Consolas, "Courier New", "Microsoft Yahei", "Hiragino Sans GB", "WenQuanYi Micro Hei", serif }
#write>h3.md-focus::before { left: -1.5rem; color: rgb(153, 153, 153); border-color: rgb(153, 153, 153) }
#write>h4.md-focus::before { left: -1.5rem; top: 0.25rem; color: rgb(153, 153, 153); border-color: rgb(153, 153, 153) }
#write>h5.md-focus::before { left: -1.5rem; color: rgb(153, 153, 153); border-color: rgb(153, 153, 153) }
#write>h6.md-focus::before { left: -1.5rem; top: 0.3125rem; color: rgb(153, 153, 153); border-color: rgb(153, 153, 153) }
.md-toc:focus .md-toc-content { margin-top: 19px }
.md-toc-content:empty::before { color: rgb(6, 85, 136) }
.md-toc-item { color: rgb(6, 85, 136) }
#write div.md-toc-tooltip { background-color: rgb(243, 242, 238) }
#typora-sidebar { background-color: rgb(243, 242, 238) }
.pin-outline #typora-sidebar { background: inherit; border-right: 1px dashed }
.pin-outline #typora-sidebar:hover .outline-title-wrapper { border-left: 1px dashed }
.outline-item:hover { background-color: rgb(218, 218, 218); border-left: 28px solid rgb(218, 218, 218); border-right: 18px solid rgb(218, 218, 218) }
.typora-node .outline-item:hover { border-right: 28px solid rgb(218, 218, 218) }
.outline-expander::before { content: "?"; font-family: FontAwesome; font-size: 14px; top: 1px }
.outline-expander:hover::before,.outline-item-open>.outline-item>.outline-expander::before { content: "?" }
.modal-content { background-color: rgb(243, 242, 238) }
.auto-suggest-container ul li { list-style-type: none }
.megamenu-menu,#top-titlebar,#top-titlebar *,.megamenu-content { background: rgb(243, 242, 238); color: rgb(31, 9, 9) }
.megamenu-menu-header { border-bottom: 1px dashed rgb(32, 43, 51) }
.megamenu-menu { border-right: 1px dashed }
header,.context-menu,.megamenu-content,footer { font-family: "PT Serif", "Times New Roman", Times, serif; color: rgb(31, 9, 9) }
#megamenu-back-btn { color: rgb(31, 9, 9); border-color: rgb(31, 9, 9) }
.megamenu-menu-header #megamenu-menu-header-title::before { color: rgb(31, 9, 9) }
.megamenu-menu-list li a:hover,.megamenu-menu-list li a.active { color: inherit; background-color: rgb(232, 231, 223) }
.long-btn:hover { background-color: rgb(232, 231, 223) }
#recent-file-panel tbody tr:nth-child(2n-1) { background-color: transparent !important }
.megamenu-menu-panel tbody tr:hover td:nth-child(0n+2) { color: inherit }
.megamenu-menu-panel .btn { background-color: rgb(210, 209, 209) }
.btn-default { background-color: transparent }
.typora-sourceview-on #toggle-sourceview-btn,.ty-show-word-count #footer-word-count { background: rgb(199, 197, 197) }
#typora-quick-open { background-color: inherit }
.md-diagram-panel { margin-top: 8px }
.file-list-item-file-name { font-weight: initial }
.file-list-item-summary { opacity: 1 }
.file-list-item { color: rgb(119, 119, 119) }
.file-list-item.active { background-color: inherit; color: black }
.ty-side-sort-btn.active { background-color: inherit }
.file-list-item.active .file-list-item-file-name { font-weight: bold }
.file-list-item { opacity: 1 !important }
.file-library-node.active>.file-node-background { background-color: var(--active-file-bg-color) }
.file-tree-node.active>.file-node-content { color: var(--active-file-text-color) }
.md-task-list-item>input { margin-left: -1.6em; margin-top: calc(1rem - 12px) }
input { border: 1px solid rgb(170, 170, 170) }
.megamenu-menu-header #megamenu-menu-header-title,.megamenu-menu-header:hover,.megamenu-menu-header:focus { color: inherit }
.dropdown-menu .divider { border-color: rgb(229, 229, 229) }
.os-windows-7 strong,.os-windows-7 strong { font-weight: 760 }
.typora-export li,.typora-export p,.typora-export,.footnote-line { white-space: normal }
窗口看门狗
STM32F1窗口看门狗简介
窗口关门狗(WWDG)通常被用来监测由外部干扰或不可预见的逻辑条件造成的应用程序背离正常运行而产生的软件故障。在递减计数器(WWDG->CR)的第六位变成零时会产生一个MCU复位。在递减计数器到达窗口配置寄存器(WWDG->CFR)数值之前,如果七位递减计数器的数值被刷新,那么也会产生一个MCU复位。这表明递减计数器需要在一个窗口中被刷新。
图例
寄存器介绍
- 控制寄存器(WWDG_CR)
- 32位寄存器,低八位有效
- 第七位(WDGA):看门狗激活位,软件置1有效,硬件清零
- 低7位:存储看门狗计数器值,每个周期( 4096 ×2^ WDGTB)减一
- 从0x40变到0x3f时,MCU复位
- 配置寄存器(WWDG_CFR)
- 32位寄存器,低10位有效
- 位9(EWI):提前唤醒中断,此位置一,计数器达0x40时产生中断,硬件复位消除
- 位8:7:时基,用于修改预分频器数值
- 6:0:下窗口值
- 状态寄存器(WWDG_SR)
- 32位寄存器,位0有效
- 计数器到达0x40时,此位由硬件置一,由软件清零
操作流程
- 使能WWDG时钟,32khz
- 设置WWDG_CFR和WWDG_CR
- 开中断
- 写中断服务函数,一定要在一个周期内完成喂狗
原文地址:https://www.cnblogs.com/Socthinking/p/10306759.html