当前位置: 首页 > news >正文

STM32 | 看门狗+RTC源码解析

点击上方"蓝字"关注我们

作业

1、使用基本定时7,完成一个定时喂狗的程序

01、上节回顾

STM32 | 独立看门狗+RTC时间(第八天)

02、定时器头文件

#ifndef __TIM_H#define __TIM_H#include "stm32f4xx.h"void Tim3_Init(void);void Tim7_Init(void);#endif

03、定时器源文件

#include "tim.h"/*********************************定时器说明TIM3 -- APB1(定时器频率:84MHZ)TIM3是16位定时器**********************************/void Tim3_Init(void){  TIM_TimeBaseInitTypeDef    TIM_TimeBaseInitStruct;  NVIC_InitTypeDef        NVIC_InitStruct;  //1、能定时器时钟。  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);    TIM_TimeBaseInitStruct.TIM_Prescaler  = (84-1);        //84分频,定时器频率84MHZ/84 = 1MHZ(计一个用1us)  TIM_TimeBaseInitStruct.TIM_Period    = (1000-1);        //计1000个数,在1MHZ下,用时1ms  TIM_TimeBaseInitStruct.TIM_CounterMode  = TIM_CounterMode_Up;  //向上计数  TIM_TimeBaseInitStruct.TIM_ClockDivision= TIM_CKD_DIV1;      //分频因子  1脉冲计一个数  //2、初始化定时器,配置ARR,PSC。  TIM_TimeBaseInit(TIM3, &TIM_TimeBaseInitStruct);  NVIC_InitStruct.NVIC_IRQChannel            = TIM3_IRQn;     //中断通道,可在stm32f4xx.h文件当中查找  NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority  = 1;        //抢占优先级  NVIC_InitStruct.NVIC_IRQChannelSubPriority      = 1;        //响应优先级  NVIC_InitStruct.NVIC_IRQChannelCmd          = ENABLE;      //通道使能  //3、启定时器中断,配置NVIC。  NVIC_Init(&NVIC_InitStruct);    //4、设置 TIM3_DIER  允许更新中断  TIM_ITConfig(TIM3, TIM_IT_Update, ENABLE);    //5、使能定时器。  TIM_Cmd(TIM3, ENABLE);}//编写中断服务函数。每隔1ms进入中断void  TIM3_IRQHandler(void){  static unsigned short led_flag = 0;    //判断更新标志位是否1  if(TIM_GetITStatus(TIM3, TIM_IT_Update) == SET)  {    led_flag++; //第隔1ms 值加1        if(led_flag%9 == 0)    {      //亮灯      GPIO_ResetBits(GPIOF, GPIO_Pin_9);    }    else    {      //灭灯      GPIO_SetBits(GPIOF, GPIO_Pin_9);        }        //清空更新标志位    TIM_ClearITPendingBit(TIM3, TIM_IT_Update);    }}/*********************************定时器说明TIM7 -- APB1(定时器频率:84MHZ)TIM7是16位定时器**********************************/void Tim7_Init(void){  TIM_TimeBaseInitTypeDef    TIM_TimeBaseInitStruct;  NVIC_InitTypeDef        NVIC_InitStruct;  //1、使能定时器时钟。  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM7, ENABLE);    TIM_TimeBaseInitStruct.TIM_Prescaler  = (8400-1);              //8400分频,定时器频率84MHZ/84 = 1MHZ(计一个用1us)  TIM_TimeBaseInitStruct.TIM_Period    = (10000-1);              //计10000个数,在1MHZ下,用时1s  TIM_TimeBaseInitStruct.TIM_CounterMode  = TIM_CounterMode_Up;  //向上计数  TIM_TimeBaseInitStruct.TIM_ClockDivision= TIM_CKD_DIV1;        //分频因子  1脉冲计一个数  //2、初始化定时器,配置ARR,PSC。  TIM_TimeBaseInit(TIM7, &TIM_TimeBaseInitStruct);  NVIC_InitStruct.NVIC_IRQChannel            = TIM7_IRQn;     //中断通道,可在stm32f4xx.h文件当中查找  NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority  = 1;    //抢占优先级  NVIC_InitStruct.NVIC_IRQChannelSubPriority      = 1;      //响应优先级  NVIC_InitStruct.NVIC_IRQChannelCmd          = ENABLE;      //通道使能  //3、启定时器中断,配置NVIC。  NVIC_Init(&NVIC_InitStruct);    //4、设置 TIM7_DIER  允许更新中断  TIM_ITConfig(TIM7, TIM_IT_Update, ENABLE);    //5、使能定时器。  TIM_Cmd(TIM7, ENABLE);}//编写中断服务函数。每隔1s进入中断void  TIM7_IRQHandler(void){  //判断更新标志位是否1

相关文章:

STM32 | 看门狗+RTC源码解析

点击上方"蓝字"关注我们 作业 1、使用基本定时7,完成一个定时喂狗的程序 01、上节回顾 STM32 | 独立看门狗+RTC时间(第八天)02、定时器头文件 #ifndef __TIM_H#define __TIM_H​#include "stm32f4xx.h"​void Tim3_Init(void);void Tim7_Init(void);​…...

filebeat,kafka,clickhouse,ClickVisual搭建轻量级日志平台

springboot集成链路追踪 springboot版本 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.6.3</version><relativePath/> <!-- lookup parent from…...

Django实战项目之进销存数据分析报表——第一天:Anaconda 环境搭建

引言 Anaconda是一个流行的Python和R语言的发行版&#xff0c;它包含了大量预安装的数据科学、机器学习库和科学计算工具。使用Anaconda可以轻松地创建隔离的环境&#xff0c;每个环境都可以有自己的一套库和Python版本&#xff0c;非常适合多项目开发。本文将指导你如何安装A…...

Linux部署Prometheus+Grafana

【Linux】PrometheusGrafana 一、Prometheus&#xff08;普罗米修斯&#xff09;1、Prometheus简述2、Prometheus特点3、Prometheus生态组件4、Prometheus工作原理 二、部署Prometheus1、系统架构2、部署Prometheus3、修改配置文件4、配置系统启动文件 三、部署 Node Exporter …...

【视频讲解】神经网络、Lasso回归、线性回归、随机森林、ARIMA股票价格时间序列预测|附代码数据

全文链接&#xff1a;https://tecdat.cn/?p37019 分析师&#xff1a;Haopeng Li 随着我国股票市场规模的不断扩大、制度的不断完善&#xff0c;它在金融市场中也成为了越来越不可或缺的一部分。 【视频讲解】神经网络、Lasso回归、线性回归、随机森林、ARIMA股票价格时间序列…...

低代码前端框架Amis全面教程

什么是Amis&#xff1f; 1.1 Amis的基本概念 Amis是一个基于JSON配置的前端低代码框架&#xff0c;由百度开源。它允许开发者通过简单的JSON配置文件来生成复杂的后台管理页面&#xff0c;从而大大减少了前端开发的工作量。Amis的核心理念是通过配置而非编码来实现页面的构建…...

Windows 如何安装和卸载 OneDrive?具体方法总结

卸载 OneDrive 有人想问 OneDrive 可以卸载吗&#xff1f;如果你不使用当然可以卸载&#xff0c;下面是安装和卸载 OneDrive 中的卸载应用具体操作步骤&#xff1a; 卸载 OneDrive 我们可以从设置面板中的应用选项进行卸载&#xff0c;打开设置面板之后选择应用&#xff0c;然…...

c# .net core中间件,生命周期

某些模块和处理程序具有存储在 Web.config 中的配置选项。但是在 ASP.NET Core 中&#xff0c;使用新配置模型取代了 Web.config。 HTTP 模块和处理程序如何工作 官网地址&#xff1a; 将 HTTP 处理程序和模块迁移到 ASP.NET Core 中间件 | Microsoft Learn 处理程序是&#xf…...

Spring后端框架复习总结

之前写的博客太杂,最近想把后端框架的知识点再系统的过一遍,主要是Spring Boot和Mybatis相关,带着自己的理解使用简短的话把一些问题总结一下,尤其是开发中和面试中的高频问题,基础知识点可以参考之前写java后端专栏,这篇不再赘述。 目录 Spring什么是AOP?底层原理?事务…...

基于Llama Index构建RAG应用

前言 Hello&#xff0c;大家好&#xff0c;我是GISer Liu&#x1f601;&#xff0c;一名热爱AI技术的GIS开发者&#xff0c;本文参与活动是2024 DataWhale AI夏令营&#xff1b;&#x1f632; 在本文中作者将通过&#xff1a; Gradio、Streamlit和LlamaIndex介绍 LlamaIndex 构…...

SSLRec代码分析

文章目录 encoder-models-general_cfautocf.py data_utilsdata_handler_general_cf.py输入输出说明使用方法 trainertuner.py encoder-models-general_cf autocf.py import torch as t # 导入PyTorch并重命名为t from torch import nn # 从PyTorch导入神经网络模块 import …...

第四节shell条件测试(1)(2)

一,命令执行结果判定 &&在命令执行后如果没有任何报错时会执行符号后面的动作 ||在命令执行后如果命令有报错会执行符号后的动作 示例: vim lee.sh #!/bin/bash ls /mnt/file &> /dev/null &&{echo /mnt/filr is not existecho no }||{echo /mnt/fi…...

申请https证书的具体流程

申请HTTPS证书的具体流程通常涉及以下步骤&#xff0c;不过请注意&#xff0c;具体细节可能因不同的证书颁发机构&#xff08;CA&#xff09;而有所差异&#xff1a; 1、确定证书类型&#xff1a; 证书类型&#xff1a;根据需求选择合适的SSL证书类型。常见的有DV&#xff08;…...

IP溯源工具--IPTraceabilityTool

工具地址&#xff1a;xingyunsec/IPTraceabilityTool: 蓝队值守利器-IP溯源工具 (github.com) 工具介绍&#xff1a; 在攻防演练期间&#xff0c;对于值守人员&#xff0c;某些客户要求对攻击IP都进行分析溯源&#xff0c;发现攻击IP的时候&#xff0c;需要针对攻击IP进行分析…...

字节抖音电商 后端开发岗位 一面

笔者整理答案&#xff0c;以供参考 自我介绍 项目&#xff08;20分钟&#xff09; RocketMQ延时消息的底层实现 回答&#xff1a; 延时消息的实现主要依赖于RocketMQ中的定时任务机制。消息被发送到Broker时&#xff0c;会先存储在一个特定的延时消息队列中。Broker会定时扫…...

前端开发日记——在MacBook上配置Vue环境

前言 大家好&#xff0c;我是来自CSDN的寄术区博主PleaSure乐事。今天是开始学习vue的第一天&#xff0c;我使用的编译器是vscode&#xff0c;浏览器使用的是谷歌浏览器&#xff0c;后续会下载webstorm进行使用&#xff0c;当前学习阶段使用vscode也是可以的&#xff0c;不用担…...

测试开发面经总结(三)

TCP三次握手 TCP 是面向连接的协议&#xff0c;所以使用 TCP 前必须先建立连接&#xff0c;而建立连接是通过三次握手来进行的。 一开始&#xff0c;客户端和服务端都处于 CLOSE 状态。先是服务端主动监听某个端口&#xff0c;处于 LISTEN 状态 客户端会随机初始化序号&…...

开始构建我们自己的大语言模型:数据处理部分

关注本专栏&#xff08;NLP简论&#xff1a;手搓大语言模型实践&#xff09; 继续学习从头编写、训练自己的大语言模型。 接上集&#xff0c;本章我们将深入说一下大语言模型数据处理部分的细节&#xff0c;并直接提供本部分的完整代码。 【配套资源】 暂时的词汇表&#xff1…...

springboot系列十: 自定义转换器,处理JSON,内容协商

文章目录 自定义转换器基本介绍应用实例查看源码注意事项和细节 处理JSON需求说明应用实例 内容协商基本介绍应用实例debug源码优先返回xml注意事项和细节 ⬅️ 上一篇: springboot系列九: 接收参数相关注解 &#x1f389; 欢迎来到 springboot系列十: 自定义转换器&#xff0c…...

C++(new与delete操作符)

C中的new与delete new 与 delete定位new表达式 new 与 delete 在C中需要动态申请内存空间时需要使用 new 与 delete 这两个操作符 #include <iostream> using namespace std; int main() {int* p1 new int;//开辟一块int类型大小的空间给p1int* p2 new int(1);//开辟…...

抖音视频智能管理:如何通过批量下载与自动化分类实现90%效率提升

抖音视频智能管理&#xff1a;如何通过批量下载与自动化分类实现90%效率提升 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 在短视频内容爆炸的时代&#xff0c;高效的视频采集、批量下载与系统化内容管理已…...

Qt官网抽风连不上?亲测有效的Qt6在线安装网络问题终极解决手册

Qt6在线安装网络问题终极解决手册&#xff1a;从反复失败到一次成功 看着Qt安装器上那个刺眼的"无法连接服务器"提示&#xff0c;我第27次点击了重试按钮。作为一名有十年经验的开发者&#xff0c;我从未想过会在安装环境这一步耗费整整一个下午。这不是个例——根据…...

跨平台网络资源嗅探下载工具:一站式解决多媒体内容获取难题

跨平台网络资源嗅探下载工具&#xff1a;一站式解决多媒体内容获取难题 【免费下载链接】res-downloader 资源下载器、网络资源嗅探&#xff0c;支持微信视频号下载、网页抖音无水印下载、网页快手无水印视频下载、酷狗音乐下载等网络资源拦截下载! 项目地址: https://gitcod…...

Iceoryx(冰羚):无锁队列与并发控制的设计与实现3(源码解析)

接上篇设计4: 索引管理层&#xff08; MpmcIndexQueue / CyclicIndex&#xff09;Subscriber存储数据使用的是queue&#xff0c;是为了保证数据的读取顺序。MpmcLockFreeQueue 为了满足多个进程同时写的情况&#xff0c;采用了索引数据分离的方案&#xff08;底层的索引实现为 …...

Tailscale打洞失败太慢?手把手教你用Docker部署derper自建中转,告别国际绕行

Tailscale网络优化实战&#xff1a;用Docker自建derper中转节点提升连接速度 Tailscale作为现代零配置组网工具&#xff0c;其基于WireGuard协议的P2P直连特性确实令人惊艳——直到你发现两台设备之间的打洞成功率只有60%&#xff0c;而剩余40%的流量不得不绕行官方位于海外的中…...

Wan2.2-I2V-A14B企业落地:汽车4S店车型介绍短视频自动化生产系统

Wan2.2-I2V-A14B企业落地&#xff1a;汽车4S店车型介绍短视频自动化生产系统 1. 项目背景与需求分析 汽车4S店每天需要为不同车型制作大量介绍视频&#xff0c;传统视频制作方式面临三大痛点&#xff1a; 人力成本高&#xff1a;专业视频团队制作单条视频成本约2000-5000元制…...

Qwen3-VL:30B多模态大模型在飞书智能办公中的实战应用

Qwen3-VL:30B多模态大模型在飞书智能办公中的实战应用 飞书作为现代企业智能办公平台&#xff0c;如何通过多模态大模型实现真正的智能化升级&#xff1f;本文将带你从零搭建企业级AI助手&#xff0c;让图文交互能力真正落地业务场景。 1. 为什么企业需要多模态AI助手&#xff…...

Canvas动画实战:用requestAnimationFrame打造会飘动的云朵与彩虹

1. Canvas动画基础入门 第一次接触Canvas动画时&#xff0c;我被它强大的绘图能力惊艳到了。记得当时为了做一个简单的太阳升起动画&#xff0c;硬是用setInterval写了上百行代码&#xff0c;结果动画卡得像幻灯片一样。后来才发现&#xff0c;原来浏览器早就为我们准备了更专业…...

s2-pro GPU显存优化实践:FP16推理+动态批处理降低30%显存占用

s2-pro GPU显存优化实践&#xff1a;FP16推理动态批处理降低30%显存占用 1. 引言 语音合成技术正在快速改变内容创作的方式&#xff0c;但专业级模型的显存占用问题一直困扰着开发者。Fish Audio开源的s2-pro作为专业级语音合成模型镜像&#xff0c;虽然提供了出色的音质和音…...

Python多线程性能翻倍实录(GIL禁用+细粒度原子操作配置全指南)

第一章&#xff1a;Python无锁GIL环境下的并发模型概览Python 的全局解释器锁&#xff08;GIL&#xff09;长期被视为多线程 CPU 密集型任务的瓶颈。然而&#xff0c;随着 CPython 3.13 的正式引入“实验性无锁 GIL”&#xff08;--without-pymalloc 配合 --with-gildisabled 构…...