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

【嵌入式———基本定时器TIM6基本操作——实验需求:使用系统嘀嗒定时器,每隔1s让LED1灯闪烁一次】】

基本定时器

16位,只能向上计数,递增,没有外部I/O
定时中断,主模式下,触发DAC
时机单元:
PSC——预分频器(需减一)
自动重装载寄存器_比较(实际有两个寄存器,影子寄存器/预加载寄存器)
CNT——计数器——溢出重置
updata更新时间
UI更新中断
触发控制器——复位,使能,计数
TRGO——输出触发信号(可触发DAC模块——也就是可以连接一些外设)
时钟源 :内部时钟,一般为72MHZ
自增到自动重装载寄存器值时,下一个时钟上升沿到来后,计数产生溢出,从0重新计数,并产生更新事件,(需减一)
预加载器可以打开可以关闭(关闭就是立即更新),寄存器CR1的ARPE
计算定时时间:
多久产生一次更新事件:
预分频+1表示真正的分频

1.计数器时钟频率:内部时钟频率 72M / 预分频系数+1 ,7199 =10000HZ

2.计数器周期:计数值频率,倒数(0.1毫秒,100微秒)

3.计数器累加多少次产生一次更新事件?自动重装载值+1

4.定时时间:(预分频系数+1/内部时钟)*自动重装载值+1

使用基本定时器,实现LED灯闪烁——与上一篇文章一样的需求

LED2_PA1_低电平有效
寄存器介绍:
1.开启时种APB1ENR_TIM6
2.预分频寄存器,减一操作,1s操作

在tim.h中编写


#ifndef __TIM6_H
#define __TIM6_H#include "stm32f10x.h"void TIM6_Init(void);#endif

在tim.c中编写——基本定时器TIM6

#include "tim6.h"
#include "led.h"void TIM6_Init(void)
{// 1. 开启时钟,APB1总线外设时钟寄存器RCC->APB1ENR |= RCC_APB1ENR_TIM6EN;// 2. 设置预分频值7199,做7200分频,得到 10000Hz/S,与系统嘀嗒不一样,16位最大值65535TIM6->PSC = 7199;// 3. 设置自动重装载值9999,表示计数10000次产生一个UEVTIM6->ARR = 9999;// 4. 更新中断使能D-DMATIM6->DIER |= TIM_DIER_UIE;// 5. NVIC配置NVIC_SetPriorityGrouping(3);NVIC_SetPriority(TIM6_IRQn, 2);NVIC_EnableIRQ(TIM6_IRQn);// 6. 开启定时器TIM6->CR1 |= TIM_CR1_CEN;
}// 中断服务程序
void TIM6_IRQHandler(void)
{// 清除中断标志位TIM6->SR &= ~TIM_SR_UIF;// 翻转LED2LED_Toggle(LED2);
}

在main.c中编写

#include "usart.h"
#include "led.h"
#include "tim6.h"int main(void)
{// 初始化USART_Init();LED_Init();TIM6_Init();while(1){}
}

TIM6和TIM7控制器CR1:
ARPE:自动重装载预装载使能
CEN计数器使能

TIM6和TIM7控制器CR2:
MMS:主模式选择

TIM6和TIM7控制器DIER:
UDE:更新DMA请求使能
UIE:更新中断使能

TIM6和TIM7控制器SR:
UIF:更新中断标志,硬件在更新中断时设置该位,它由硬件清除。

TIM6和TIM7控制器EGR:
UG:产生更新事件,更新所有的寄存器

TIM6和TIM7控制器CR2:


http://www.mrgr.cn/news/100661.html

相关文章:

  • Next框架学习篇 ✅
  • 【MCP Node.js SDK 全栈进阶指南】高级篇(5):MCP之微服务架构
  • runpod team 怎么设置自己的ssh key呢?
  • 【统计方法】交叉验证:Resampling, nested 交叉验证等策略 【含R语言】
  • 如何用python脚本把一个表格有4万多条数据分为两个文件表,每个2万条数据?
  • unity Orbbec Femto Bolt接入unity流程记录 AzureKinectExamples 插件 使用记录
  • Android WIFI体系
  • LeetCode热题100--53.最大子数组和--中等
  • 2025.4.29总结
  • Nacos源码—2.Nacos服务注册发现分析四
  • Ansible 铸就 Linux 安全之盾(Ansible Builds Linux Security Shield)
  • Python初学 有差异的知识点总结(一)
  • ARPG游戏和MMORPG经济形态区别以及对经济循环的思考
  • GoogleTest:在Ubuntu22.04安装
  • 热度大幅度下降,25西电经济与管理学院(考研录取情况)
  • Python数据结构与算法(5)——动态规划
  • 聊透多线程编程-线程互斥与同步-13. C# Mutex类实现线程互斥
  • 目标检测篇---faster R-CNN
  • HarmonyOS NEXT 诗词元服务项目开发上架全流程实战(一、项目介绍及实现效果)
  • CogCoM: A Visual Language Model with Chain-of-Manipulations Reasoning 学习笔记