当前位置: 首页> 教育> 高考 > 做个外贸网站多少钱_什么网络游戏比较好玩_市场营销策划包括哪些内容_搜索词分析工具

做个外贸网站多少钱_什么网络游戏比较好玩_市场营销策划包括哪些内容_搜索词分析工具

时间:2025/7/13 15:10:54来源:https://blog.csdn.net/qq_44764442/article/details/147441323 浏览次数:0次
做个外贸网站多少钱_什么网络游戏比较好玩_市场营销策划包括哪些内容_搜索词分析工具

写这个文章是用来学习的,记录一下我的学习过程。希望我能一直坚持下去,我只是一个小白,只是想好好学习,我知道这会很难,但我还是想去做!

本文写于:2025.04.23

STM32开发板学习——第47节: [14-2] 独立看门狗&窗口看门狗

  • 前言
  • 开发板说明
  • 引用
  • 解答和科普
  • 一、独立看门狗
  • 二、窗口看门狗
  • 问题
  • 总结

前言

   本次笔记是用来记录我的学习过程,同时把我需要的困难和思考记下来,有助于我的学习,同时也作为一种习惯,可以督促我学习,是一个激励自己的过程,让我们开始32单片机的学习之路。
   欢迎大家给我提意见,能给我的嵌入式之旅提供方向和路线,现在作为小白,我就先学习32单片机了,就跟着B站上的江协科技开始学习了.
   在这里会记录下江协科技32单片机开发板的配套视频教程所作的实验和学习笔记内容,因为我之前有一个开发板,我大概率会用我的板子模仿着来做.让我们一起加油!
   另外为了增强我的学习效果:每次笔记把我不知道或者问题在后面提出来,再下一篇开头作为解答!

开发板说明

   本人采用的是慧净的开发板,因为这个板子是我N年前就买的板子,索性就拿来用了。另外我也购买了江科大的学习套间。
   原理图如下
1、开发板原理图
在这里插入图片描述
2、STM32F103C6和51对比
在这里插入图片描述
3、STM32F103C6核心板
在这里插入图片描述

视频中的都用这个开发板来实现,如果有资源就利用起来。另外也计划实现江协科技的套件。

下图是实物图
在这里插入图片描述

引用

【STM32入门教程-2023版 细致讲解 中文字幕】
还参考了下图中的书籍:
STM32库开发实战指南:基于STM32F103(第2版)
在这里插入图片描述
数据手册
在这里插入图片描述

解答和科普

一、独立看门狗

PB1按键
在这里插入图片描述
第一步,开启时钟 只有这个LSI时钟开启了,独立看门狗才能运行,所以初始化独立看门狗之前,LSI必须得开启,强制打开
如果独立看门狗已经由硬件选项或软件启动,LSI振荡器将被强制在打开状态,并且不能被关闭。在LSI振荡器稳定后,时钟供应给IWDG。
第二步,写入预分频器和重装寄存器,要先写入键值,解除写保护,
第三步、然后再写入预分频值和重装值;
第四步,写入指令启动独立看门狗。
然后写入喂狗的操作。

void IWDG_WriteAccessCmd(uint16_t IWDG_WriteAccess);
对应0x5555解除写保护
void IWDG_SetPrescaler(uint8_t IWDG_Prescaler);
写预分频器
void IWDG_SetReload(uint16_t Reload);
写重装值
void IWDG_ReloadCounter(void);
喂狗
void IWDG_Enable(void);
启动独立看门狗,0xCCCC
FlagStatus IWDG_GetFlagStatus(uint16_t IWDG_FLAG);
获取标志位
FlagStatus RCC_GetFlagStatus(uint8_t RCC_FLAG);
@arg RCC_FLAG_PINRST: Pin reset*     @arg RCC_FLAG_PORRST: POR/PDR reset*     @arg RCC_FLAG_SFTRST: Software reset*     @arg RCC_FLAG_IWDGRST: Independent Watchdog reset*     @arg RCC_FLAG_WWDGRST: Window Watchdog reset*     @arg RCC_FLAG_LPWRRST: Low Power reset
void RCC_ClearFlag(void);
查看是什么引起的复位,然后清除

在这里插入图片描述

#include "stm32f10x.h"                  // Device header
#include "Delay.h"
#include "LED.h"
#include "Key.h"
#include "OLED.h"int main(void)
{OLED_Init();Key_Init();OLED_ShowString(1,1,"IWDG TEST");if(RCC_GetFlagStatus(RCC_FLAG_IWDGRST)== SET){OLED_ShowString(2,1,"IWDGRST");Delay_ms(500);OLED_ShowString(2,1,"       ");Delay_ms(100);RCC_ClearFlag();}else{OLED_ShowString(3,1,"RST");Delay_ms(500);OLED_ShowString(3,1,"       ");Delay_ms(100);}IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);IWDG_SetPrescaler(IWDG_Prescaler_16);IWDG_SetReload(2499);			//1000msIWDG_ReloadCounter();IWDG_Enable();	//这俩会在键寄存器写入5555之外的值,不用在进行写保护了while(1){Key_GetNum();IWDG_ReloadCounter();OLED_ShowString(4,1,"FEED");Delay_ms(200);OLED_ShowString(4,1,"       ");Delay_ms(600);}
}

二、窗口看门狗

在这里插入图片描述
第一步,开启窗口看门狗APB1的时钟;
第二步,配置寄存器,预分频,窗口值,
第三步,写入控制寄存器CR,看门狗使能位,计数器溢出标志位,和计数器有效位;
写入CNT的计数器值进行喂狗

库函数:
void WWDG_DeInit(void);
void WWDG_SetPrescaler(uint32_t WWDG_Prescaler);
写入预分频器
void WWDG_SetWindowValue(uint8_t WindowValue);
写入窗口值
void WWDG_EnableIT(void);
使能中断
void WWDG_SetCounter(uint8_t Counter);
写入计数器喂狗
void WWDG_Enable(uint8_t Counter);
使能窗口看门狗,有参数,
递减计数器处于自由运行状态,即使看门狗被禁止,递减计数器仍继续递减计数。当看门狗被启用时,T6位必须被设置,以防止立即产生一个复位。
FlagStatus WWDG_GetFlagStatus(void);
void WWDG_ClearFlag(void);

在这里插入图片描述

void WWDG_SetWindowValue(uint8_t WindowValue)
{__IO uint32_t tmpreg = 0;/* Check the parameters */assert_param(IS_WWDG_WINDOW_VALUE(WindowValue));/* Clear W[6:0] bits */tmpreg = WWDG->CFR & CFR_W_Mask;/* Set W[6:0] bits according to WindowValue value */tmpreg |= WindowValue & (uint32_t) BIT_Mask;/* Store the new value */WWDG->CFR = tmpreg;
}读改写操作oid WWDG_SetCounter(uint8_t Counter)
{/* Check the parameters */assert_param(IS_WWDG_COUNTER(Counter));/* Write to T[6:0] bits to configure the counter value, no need to doa read-modify-write; writing a 0 to WDGA bit does nothing */WWDG->CR = Counter & BIT_Mask;
} 
测试
#include "stm32f10x.h"                  // Device header
#include "Delay.h"
#include "LED.h"
#include "Key.h"
#include "OLED.h"int main(void)
{OLED_Init();Key_Init();OLED_ShowString(1,1,"WWDG TEST");if(RCC_GetFlagStatus(RCC_FLAG_WWDGRST)== SET){OLED_ShowString(2,1,"WWDGRST");Delay_ms(500);OLED_ShowString(2,1,"       ");Delay_ms(100);RCC_ClearFlag();}else{OLED_ShowString(3,1,"RST");Delay_ms(500);OLED_ShowString(3,1,"       ");Delay_ms(100);}RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG,ENABLE);WWDG_SetPrescaler(WWDG_Prescaler_8);WWDG_SetWindowValue(0x40|22);		//30msWWDG_Enable(0x40|54);		//6位while(1){Key_GetNum();//WWDG_SetCounter(0x40|54);//		
//		OLED_ShowString(4,1,"FEED");
//		Delay_ms(20);
//		OLED_ShowString(4,1,"       ");Delay_ms(33);WWDG_SetCounter(0x40|54);//问题是一直触发窗口看门狗,}
}

问题

总结

本节课主要是学习了独立看门狗和窗口看门狗,如何进行配置。

关键字:做个外贸网站多少钱_什么网络游戏比较好玩_市场营销策划包括哪些内容_搜索词分析工具

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: