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

相关推荐

  1. STM32 | 看门+RTC

    2024-07-19 07:40:04       22 阅读
  2. 总结_看门项目应用

    2024-07-19 07:40:04       23 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-19 07:40:04       70 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-19 07:40:04       74 阅读
  3. 在Django里面运行非项目文件

    2024-07-19 07:40:04       62 阅读
  4. Python语言-面向对象

    2024-07-19 07:40:04       72 阅读

热门阅读

  1. 富文本中提取信息并去除其中的HTML或XML标签

    2024-07-19 07:40:04       23 阅读
  2. 2024前端面试真题【手写篇】

    2024-07-19 07:40:04       18 阅读
  3. 聊聊最近在看的一本书-《从极简到极致》

    2024-07-19 07:40:04       21 阅读
  4. Python数据获取(网页视频、音频版)

    2024-07-19 07:40:04       24 阅读
  5. Log4j2原理及应用详解(九)

    2024-07-19 07:40:04       23 阅读
  6. 关于Kafka的17个问题

    2024-07-19 07:40:04       20 阅读
  7. Leetcode 392. 判断子序列

    2024-07-19 07:40:04       20 阅读
  8. 无重复字符的最长子串(leetcode)

    2024-07-19 07:40:04       24 阅读
  9. 基于深度学习的超分辨率

    2024-07-19 07:40:04       23 阅读
  10. redis优化场景之批量处理

    2024-07-19 07:40:04       20 阅读
  11. SQL注入漏洞

    2024-07-19 07:40:04       21 阅读
  12. 慢SQL分析和优化

    2024-07-19 07:40:04       22 阅读