spispi

硬件部分可参考我另一篇文章

http://t.csdnimg.cn/4j3qT

接线图

        这是课程的相关接线图,独立看门狗和窗口看门狗都适用本图

独立看门狗部分

一、配置流程

1.开启时钟

      

        在数据手册里面有这么一段解释,就是说如果我们开启了看门狗,那么LSI就会跟随强制打开,等待LSI稳定之后就可以自动为独立看门狗提供时钟了。所以这里的第一步开启时钟不需要我们写代码来执行

2.写入预分频器和重装寄存器

        在写入这两个寄存器之前需要先写入键值0x555来解除写保护。

3.写入预分频和重装值

        可通过超时时间公式进行计算 


4.在所有配置进行完之后

        可以通过0XCCC这条指令开启独立看门狗,在主循环不断执行0XAAA这条指令进行喂狗

二、代码

1.关于复位时间计算的代码

#include "stm32f10x.h"                  // Device header
#include "Delay.h"
#include "OLED.h"int main()
{OLED_Init();OLED_ShowString(1,1,"IWDG TEST");if(RCC_GetFlagStatus(RCC_FLAG_IWDGRST) == SET)//查看独立看门狗复位的标志位,返回值是set 或 reset{OLED_ShowString(2,1,"IWDG RST");Delay_ms(800);OLED_ShowString(2,1,"        ");Delay_ms(200);//中断位置1后记得清除标志位 //如果置1后没及时清0,那下次即使是正常的复位键复位也会被判断为看门狗复位RCC_ClearFlag();}else{OLED_ShowString(2,1,"NORMOL RST");Delay_ms(800);OLED_ShowString(2,1,"          ");Delay_ms(200);		}//接下来需要进行解除写保护IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);//这里的enable对应的宏定义是0x5555//举个例子,设定我们需要的超时时间为1s TIWDG就是1000//TLSI是1/40KHz,就是0.025ms//在选择预分频系数的时候,前两个由于最长时间<1000不能选择,所以选择最小能够选择的16分频//最后用公式计算RL的值 1000/0.025/16-1=2499	  !!!注意这个值只能取整数IWDG_SetPrescaler(IWDG_Prescaler_16);IWDG_SetReload(2499);//先喂一次狗,保证启动后的第一个喂狗周期就是1000msIWDG_ReloadCounter();IWDG_Enable();while(1){IWDG_ReloadCounter();Delay_ms(1050);//经过测试我的看门狗在1050ms时会复位,在此之前及时喂狗不会产生复位}
}

2.关于按键阻塞程序运行的程序

#include "stm32f10x.h"                  // Device header
#include "Delay.h"
#include "OLED.h"
#include "KEY.h"int main()
{OLED_Init();GPIO_Key_Init();OLED_ShowString(1,1,"IWDG TEST");if(RCC_GetFlagStatus(RCC_FLAG_IWDGRST) == SET)//查看独立看门狗复位的标志位,返回值是set 或 reset{OLED_ShowString(2,1,"IWDG RST");Delay_ms(800);OLED_ShowString(2,1,"        ");Delay_ms(200);//中断位置1后记得清除标志位 //如果置1后没及时清0,那下次即使是正常的复位键复位也会被判断为看门狗复位RCC_ClearFlag();}else{OLED_ShowString(3,1,"NORMOL RST");Delay_ms(800);OLED_ShowString(3,1,"          ");Delay_ms(200);	}//接下来需要进行解除写保护IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);//这里的enable对应的宏定义是0x5555//举个例子,设定我们需要的超时时间为1s TIWDG就是1000//TLSI是1/40KHz,就是0.025ms//在选择预分频系数的时候,前两个由于最长时间<1000不能选择,所以选择最小能够选择的16分频//最后用公式计算RL的值 1000/0.025/16-1=2499	  !!!注意这个值只能取整数IWDG_SetPrescaler(IWDG_Prescaler_16);IWDG_SetReload(2499);//先喂一次狗,保证启动后的第一个喂狗周期就是1000msIWDG_ReloadCounter();IWDG_Enable();while(1){Key_GetNum();//按住按键不放,主循环就会阻塞,则不能及时喂狗,造成复位IWDG_ReloadCounter(); OLED_ShowString(4,1,"FEED");Delay_ms(200);OLED_ShowString(4,1,"    ");//值得注意的东西,这里不可以使用tab自动空格按键,会造成只有第一个字母闪烁//需要老老实实敲四下空格Delay_ms(600);		//Delay_ms(1050);//经过测试我的看门狗在1050ms时会复位,在此之前及时喂狗不会产生复位}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/806820.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PTA 2813:画家问题(熄灯问题)

有一个正方形的墙&#xff0c;由NN个正方形的砖组成&#xff0c;其中一些砖是白色的&#xff0c;另外一些砖是黄色的。Bob是个画家&#xff0c;想把全部的砖都涂成黄色。但他的画笔不好使。当他用画笔涂画第(i,j)个位置的砖时&#xff0c; 位置(i−1,j)、 (i1,j)、(i,j−1)、(i…

掌握判断IPv4地址是否正确的方法

在数字通信和互联网领域中&#xff0c;IPv4地址作为标识网络设备的核心元素&#xff0c;其正确性至关重要。一个有效的IPv4地址能够确保设备在网络中的正常通信和交互&#xff0c;而错误的IPv4地址则可能导致连接失败、通信中断甚至网络安全问题。因此&#xff0c;掌握判断IPv4…

SQL注入sqli_labs靶场第二题

解题思路与第一题相同 ?id1 and 11 和?id1 and 12进行测试如果11页面显示正常和原页面一样&#xff0c;并且12页面报错或者页面部分数据显示不正常&#xff0c;那么可以确定此处为数字型注入。 联合查询&#xff1a; 猜解列名数量&#xff1a;3 ?id1 order by 4 判断回显…

防止邮箱发信泄露服务器IP教程

使用QQ邮箱,网易邮箱,189邮箱,新浪邮箱,139邮箱可能会泄露自己的服务器IP。 泄露原理&#xff1a;服务器通过请求登录SMTP邮箱服务器接口&#xff0c;对指定的收件人发送信息。 建议大家使用商业版的邮箱&#xff0c;比如阿里云邮箱发信等 防止邮件发信漏源主要关注的是确保邮件…

机器学习和深度学习--李宏毅 (笔记与个人理解)Day7

Day7 Regression Case study &#xff08;预测宝可梦的cp&#xff09; Regression 可以做什么&#xff1f; 股票预测 自动驾驶 推荐 预测宝可梦的cp&#xff08;能力类似这样的属性把&#xff09; 这里突然想到&#xff0c;是不是可以用洛克王国和赛尔号做事情哈哈 注意&#…

6种xinput1_3.dll丢失的解决办法,并探讨xinput1_3.dll丢失的原因及其属性。

xinput1_3.dll扮演着Visual C运行时库中不可或缺的角色&#xff0c;众多电脑软件都需依赖它以确保正常运行。 当您启动软件时&#xff0c;若遇到xinput1_3.dll无法执行代码的提示&#xff0c;可能会导致软件无法如常启动或运行。本文将向您介绍6种解决方案&#xff0c;并探讨xi…

Java基于微信小程序的乐室预约系统(V2.0),附源码

博主介绍&#xff1a;✌IT徐师兄、7年大厂程序员经历。全网粉丝15W、csdn博客专家、掘金/华为云//InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&#x1f3…

WEB前端-倒计时练习

<body><div>距离2024年7月3日还有&#xff1a;<br><span id"d">0</span>天<span id"h">0</span>小时<span id"m">0</span>分钟<span id"s">0</span>秒</div>…

文章解读与仿真程序复现思路——电力系统自动化EI\CSCD\北大核心《新型电力系统多阶段输-储协同分布鲁棒规划》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

【PHP系统学习】——Laravel框架数据库的连接以及数据库的增删改查的详细教程

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;开发者-曼亿点 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 曼亿点 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a…

蓝桥杯——考勤刷卡

题目 小蓝负责一个公司的考勤系统,他每天都需要根据员工刷卡的情况来确定 每个员工是否到岗。 当员工刷卡时,会在后台留下一条记录,包括刷卡的时间和员工编号,只 要在一天中员工刷过一次卡,就认为他到岗了。 现在小蓝导出了一天中所有员工的刷卡记录,请将所有到岗员工的员工编…

创建网络名称空间后的Linux幕后工作解析

Linux网络名称空间&#xff08;Network Namespace&#xff09;是一种强大的虚拟化技术&#x1f310;&#xff0c;允许用户隔离网络设备、IP地址、路由表等网络资源。这项技术在容器化和虚拟化领域发挥着关键作用&#xff0c;是构建现代云基础设施的基石之一⛅。当你创建一个新的…

Quanto: PyTorch 量化工具包

量化技术通过用低精度数据类型 (如 8 位整型 (int8)) 来表示深度学习模型的权重和激活&#xff0c;以减少传统深度学习模型使用 32 位浮点 (float32) 表示权重和激活所带来的计算和内存开销。 减少位宽意味着模型的内存占用更低&#xff0c;这对在消费设备上部署大语言模型至关…

nginx配置证书和私钥进行SSL通信验证

文章目录 一、背景1.1 秘钥和证书是两个东西吗&#xff1f;1.2 介绍下nginx配置文件中参数ssl_certificate和ssl_certificate_key1.3介绍下nginx支持的证书类型1.4 目前nginx支持哪种证书格式&#xff1f;1.5 nginx修改配置文件目前方式也会有所不同1.6 介绍下不通格式的证书哪…

[opencv]VideoWriter写出fourcc格式

fourcc支持的格式 fourcc全名Four-Character Codes&#xff0c;四字符代码&#xff0c;该编码由四个字符组成 cv2.VideoWriter_fourcc(O,O,O,O) cv2.VideoWriter_fourcc(*OOOO) 通常写法有上述两种形式&#xff0c;O代表一个字符&#xff0c;通常有 支持avi格式的有&#…

花样鼠标悬停特效

代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><style&…

SAM功能改进VRP-SAM论文解读VRP-SAM: SAM with Visual Reference Prompt

现已总结SAM多方面相关的论文解读&#xff0c;具体请参考该专栏的置顶目录篇 一、总结 1. 简介 发表时间&#xff1a;2024年3月30日 论文&#xff1a; 2402.17726.pdf (arxiv.org)https://arxiv.org/pdf/2402.17726.pdf代码&#xff1a; syp2ysy/VRP-SAM (github.com)htt…

如何在极狐GitLab 使用Docker 仓库功能

本文作者&#xff1a;徐晓伟 GitLab 是一个全球知名的一体化 DevOps 平台&#xff0c;很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版&#xff0c;专门为中国程序员服务。可以一键式部署极狐GitLab。 本文主要讲述了如何在[极狐GitLab…

月亮和Pandas - Wes Mckinney的传奇故事

正如死亡和税收不可避免&#xff0c;Pandas对量化人而言&#xff0c;也具有同样的地位 – 每个人都不可避免地要与之打交道。而Wes Mckinney正是Pandas的创建者。Pandas是有史以来&#xff0c;最成功的Python库之一&#xff0c;以一已之力&#xff0c;开拓了Python的生存空间。…

Python结合spy++

导入必要的库 import win32con from win32 import win32gui from win32 import win32clipboard as w import pyautogui import sys1.获取窗口全部属性 def show_window_attr(hwnd):"""显示窗口的属性:param hwnd: 窗口句柄&#xff08;十进制&#xff09;:ret…