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

网站如何做360度全景北京优化网站公司

网站如何做360度全景,北京优化网站公司,可以做砍价活动的网站,网站建设分工明细表文章目录 前言一、通用定时器TIM简介1.STM32F10X系列总共最多有八个定时器:2.三种STM32定时器的区别:3.STM32 的通用定时器功能:4.计数器模式 二、基本定时器1.基本定时器的结构框图2.定时时间的计算3.定时器的结构体和库函数 总结 前言 一个…

文章目录

  • 前言
  • 一、通用定时器TIM简介
    • 1.STM32F10X系列总共最多有八个定时器:
    • 2.三种STM32定时器的区别:
    • 3.STM32 的通用定时器功能:
    • 4.计数器模式
  • 二、基本定时器
    • 1.基本定时器的结构框图
    • 2.定时时间的计算
    • 3.定时器的结构体和库函数
  • 总结


前言

一个学习STM32的小白~ 有错误评论区或私信指出

一、通用定时器TIM简介

1.STM32F10X系列总共最多有八个定时器:

在这里插入图片描述

2.三种STM32定时器的区别:

在这里插入图片描述

3.STM32 的通用定时器功能:

  • 16 位/32 位(仅 TIM2 和 TIM5)向上、向下、向上/向下自动装载计数器
    (TIMx_CNT),注意:TIM9~TIM14 只支持向上(递增)计数方式
  • 16 位可编程(可以实时修改)预分频器(TIMx_PSC),计数器时钟频率的分频系数为 1~ 65535 之间的任意数值
  • 4 个独立通道(TIMx_CH14,TIM9TIM14 最多 2 个通道),这些通道可以用来作为:
    • 输入捕获
    • 输出比较
    • PWM 生成(边缘或中间对齐模式) ,注意:TIM9~TIM14 不支持中间对齐模式
    • 单脉冲模式输出
  • 可使用外部信号(TIMx_ETR)控制定时器和定时器互连(可以用 1 个定时器控制另外一个定时器)的同步电路。
    • 如下事件发生时产生中断/DMA(TIM9~TIM14 不支持 DMA):
    • 更新:计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部/外部触发)
    • 触发事件(计数器启动、停止、初始化或者由内部/外部触发计数)
    • 输入捕获
    • 输出比较
    • 支持针对定位的增量(正交)编码器和霍尔传感器电路(TIM9~TIM14 不支持)
    • 触发输入作为外部时钟或者按周期的电流管理(TIM9~TIM14 不支持)

4.计数器模式

通用定时器可以向上计数、向下计数、向上向下双向计数模式

  • 向上计数模式:计数器从0计数到自动加载值(TIMx_ARR),然后重新从0开始计数并且产生一个计数器溢出事件
  • 向下计数模式:计数器从自动装入的值(TIMx_ARR)开始向下计数到0,然后从自动装入的值重新开始,并产生一个计数器向下溢出事件
  • 中央对齐模式(向上/向下计数):计数器从0开始计数到自动装入的值-1,产生一个计数器溢出事件,然后向下计数到1并且产生一个计数器溢出事件;然后再从0开始重新计数

在这里插入图片描述

二、基本定时器

1.基本定时器的结构框图

  1. 时钟源
  2. 控制器
  3. 时基单元
    在这里插入图片描述
    时钟源
  • 时钟源来自RCC的TIMx_CLK(属于内部的CK_INIT)
    控制器
  • 控制器用于控制定时器:复位、使能、计数、触发ADC
    涉及到的寄存器:CR1/2,DIER,EGR,SR
    时基(定时器的心脏)
  • 定时器最重要的就是时基部分:包括预分频器、计数器、自动重装载寄存器
    • 预分频器:16位预分频器(1~65536)PSC对内部时钟CK_PSC进行分频之后,得到计数器时钟CK_INT=CK_PSC/(PSC+1)
    • CNT在计数器时钟的驱动下开始计数,计数一次的时间为1/CK_INT
    • 计数器、重装在寄存器:定时器使能(CEN置1)后,计数器CNT在CK_CNT驱动下计数,当TNT值与ARR的设定值相等时就自动生成事件并CNT自动清零,然后自动重新开始计数,如此重复以上过程。

影子寄存器
1.PSC和ARR都有影子寄存器,功能框图上有个影子
2.影子寄存器的存在起到一个缓冲的作用,用户值->寄存器->影子寄存器->起作用,
如果不使用影子寄存器则用户值在写到寄存器之后则里面起作用,ARR影子,
TIMx_CR1:APRE位控制。

2.定时时间的计算

  • PSC=72-1,定时器的频率 = 72M/(PSC+1) = 1MHZ
  • ARR = 1000 -1,从0计数到999,则计了1000次
  • 中断周期T = 1000 * 1 /1 000 000 = 1ms

3.定时器的结构体和库函数

时基初始化结构体:typedef struct{uint16_t TIM_Prescaler;    
uint16_t TIM_CounterMode;       
uint16_t TIM_Period;           
//分频因子      
//计数模式,基本定时器只能向上计数
//自动重装载值
uint16_t TIM_ClockDivision;     
uint8_t TIM_RepetitionCounter;  //重复计数值,基本定时器没有,高级定时器
专用
} TIM_TimeBaseInitTypeDef;  
常用的库函数:
//外部输入时钟分频因子,基本定时器没有
void TIM_TimeBaseInit(TIM_TypeDef* TIMx, TIM_TimeBaseInitTypeDef* 
TIM_TimeBaseInitStruct);void TIM_TimeBaseStructInit(TIM_TimeBaseInitTypeDef* 
TIM_TimeBaseInitStruct);void TIM_Cmd(TIM_TypeDef* TIMx, FunctionalState NewState);void TIM_ITConfig(TIM_TypeDef* TIMx, uint16_t TIM_IT, FunctionalState 
NewState);void TIM_PrescalerConfig(TIM_TypeDef* TIMx, uint16_t Prescaler, 
uint16_t TIM_PSCReloadMode);void TIM_ARRPreloadConfig(TIM_TypeDef* TIMx, FunctionalState 
NewState);  
FlagStatus TIM_GetFlagStatus(TIM_TypeDef* TIMx, uint16_t TIM_FLAG);void TIM_ClearFlag(TIM_TypeDef* TIMx, uint16_t TIM_FLAG);ITStatus TIM_GetITStatus(TIM_TypeDef* TIMx, uint16_t TIM_IT);void TIM_ClearITPendingBit(TIM_TypeDef* TIMx, uint16_t TIM_IT);

练习:

如何实现500ms的定时?

void tim_Init(void)
{TIM_TimeBaseInitTypeDef  tim_InitStructure;NVIC_InitTypeDef nvic_InitStructure;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);tim_InitStructure.TIM_ClockDivision = TIM_CKD_DIV1;//不分频tim_InitStructure.TIM_CounterMode = TIM_CounterMode_Up;//向上计数tim_InitStructure.TIM_Prescaler = 36000-1;//预分频tim_InitStructure.TIM_Period = 1000-1;//ARR自动重装TIM_ClearFlag(TIM2,TIM_FLAG_Update);TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE);TIM_TimeBaseInit(TIM2,&tim_InitStructure);NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);nvic_InitStructure.NVIC_IRQChannel = TIM2_IRQn;nvic_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;nvic_InitStructure.NVIC_IRQChannelSubPriority = 1;nvic_InitStructure.NVIC_IRQChannelCmd = ENABLE;NVIC_Init(&nvic_InitStructure);TIM_Cmd(TIM2,ENABLE);}

定时器控制LED闪烁

软件流程设计

  • 初始化系统
    • 初始化定时器和LED的IO时钟
    • 初始化LED的引脚IO
  • 定时器中断中驱动LED灯
#include "tim.h"
#include "stm32f10x.h"                  // Device headervoid tim_Init(void)
{TIM_TimeBaseInitTypeDef  tim_InitStructure;NVIC_InitTypeDef nvic_InitStructure;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);tim_InitStructure.TIM_ClockDivision = TIM_CKD_DIV1;//不分频tim_InitStructure.TIM_CounterMode = TIM_CounterMode_Up;//向上计数tim_InitStructure.TIM_Prescaler = 36000-1;//预分频tim_InitStructure.TIM_Period = 1000-1;//ARR自动重装TIM_ClearFlag(TIM2,TIM_FLAG_Update);//清楚更新事件标志位防止一进来就更新TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE);//开中断TIM_TimeBaseInit(TIM2,&tim_InitStructure);NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);nvic_InitStructure.NVIC_IRQChannel = TIM2_IRQn;nvic_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;nvic_InitStructure.NVIC_IRQChannelSubPriority = 1;nvic_InitStructure.NVIC_IRQChannelCmd = ENABLE;NVIC_Init(&nvic_InitStructure);TIM_Cmd(TIM2,ENABLE);//开定时器}void TIM2_IRQHandler(void)
{static uint16_t Count;if(TIM_GetITStatus(TIM2,TIM_IT_Update) != RESET){if(Count++ % 2 == 1){GPIO_ResetBits(GPIOA,GPIO_Pin_1);}else{GPIO_SetBits(GPIOA,GPIO_Pin_1);}}TIM_ClearFlag(TIM2,TIM_IT_Update);//清除中断标志位}

总结

定时器非常重要!!!
注:定时器中断要软件开启(TIM_ITConfig),要开启定时器(TIM_cmd)!!!


文章转载自:
http://dinncodisomic.tqpr.cn
http://dinncoglaciological.tqpr.cn
http://dinncotisza.tqpr.cn
http://dinncotriolet.tqpr.cn
http://dinncobackproject.tqpr.cn
http://dinncobedraggle.tqpr.cn
http://dinncometatheory.tqpr.cn
http://dinncogrey.tqpr.cn
http://dinncogearshift.tqpr.cn
http://dinncoveneration.tqpr.cn
http://dinncomysticism.tqpr.cn
http://dinncosphinx.tqpr.cn
http://dinncovasopressor.tqpr.cn
http://dinncodizzyingly.tqpr.cn
http://dinncoholme.tqpr.cn
http://dinncofireflooding.tqpr.cn
http://dinncotelfordize.tqpr.cn
http://dinncopomeron.tqpr.cn
http://dinncopartition.tqpr.cn
http://dinncowhereas.tqpr.cn
http://dinncotypist.tqpr.cn
http://dinncocanaster.tqpr.cn
http://dinncotopside.tqpr.cn
http://dinncophocomelia.tqpr.cn
http://dinncowhereof.tqpr.cn
http://dinncostv.tqpr.cn
http://dinncoconceivability.tqpr.cn
http://dinncovengefully.tqpr.cn
http://dinncopikeperch.tqpr.cn
http://dinncolashkar.tqpr.cn
http://dinncodogly.tqpr.cn
http://dinncocervelas.tqpr.cn
http://dinncoguild.tqpr.cn
http://dinncocancerous.tqpr.cn
http://dinncohexachord.tqpr.cn
http://dinncoanthranilate.tqpr.cn
http://dinncoradiate.tqpr.cn
http://dinncoclench.tqpr.cn
http://dinncocatalyzer.tqpr.cn
http://dinncomulatto.tqpr.cn
http://dinncoexhaustively.tqpr.cn
http://dinncoalliterative.tqpr.cn
http://dinncosankhya.tqpr.cn
http://dinncopraam.tqpr.cn
http://dinncomultigerm.tqpr.cn
http://dinncomicromeritics.tqpr.cn
http://dinncosturdy.tqpr.cn
http://dinncoadvertence.tqpr.cn
http://dinncohanukkah.tqpr.cn
http://dinncotiber.tqpr.cn
http://dinncopercentagewise.tqpr.cn
http://dinncosubauricular.tqpr.cn
http://dinncolordship.tqpr.cn
http://dinncotristearin.tqpr.cn
http://dinncomatsah.tqpr.cn
http://dinncostreetwalker.tqpr.cn
http://dinncoextortionate.tqpr.cn
http://dinncooptimism.tqpr.cn
http://dinncotemblor.tqpr.cn
http://dinncoplebeian.tqpr.cn
http://dinncolustre.tqpr.cn
http://dinncoimpressionism.tqpr.cn
http://dinnconomarchy.tqpr.cn
http://dinncocingular.tqpr.cn
http://dinncopiscean.tqpr.cn
http://dinncoperiselene.tqpr.cn
http://dinncophilosophize.tqpr.cn
http://dinncoloneliness.tqpr.cn
http://dinncocheerioh.tqpr.cn
http://dinncofidelia.tqpr.cn
http://dinncoschizomycete.tqpr.cn
http://dinncooverwatch.tqpr.cn
http://dinncosubdural.tqpr.cn
http://dinncoincredible.tqpr.cn
http://dinncoideal.tqpr.cn
http://dinncocarcinoma.tqpr.cn
http://dinncoabstentious.tqpr.cn
http://dinncocicatrise.tqpr.cn
http://dinncocrucifix.tqpr.cn
http://dinncodeclassification.tqpr.cn
http://dinncopodsol.tqpr.cn
http://dinncosolstice.tqpr.cn
http://dinncodivagate.tqpr.cn
http://dinncoinobservance.tqpr.cn
http://dinncoshufty.tqpr.cn
http://dinncobotb.tqpr.cn
http://dinncowalty.tqpr.cn
http://dinncotrauma.tqpr.cn
http://dinncoferaghan.tqpr.cn
http://dinncosufferance.tqpr.cn
http://dinncostipulator.tqpr.cn
http://dinncodiamante.tqpr.cn
http://dinncoafraid.tqpr.cn
http://dinncointercensal.tqpr.cn
http://dinncorecreative.tqpr.cn
http://dinncointerbrain.tqpr.cn
http://dinncowhitewall.tqpr.cn
http://dinncodiu.tqpr.cn
http://dinncoglossitis.tqpr.cn
http://dinncoholohedrism.tqpr.cn
http://www.dinnco.com/news/137215.html

相关文章:

  • 中华人民建设部网站百度关键词优化快速排名软件
  • pc端网站开发技术网站搜索量查询
  • 求一个自己做的网站链接软文媒体
  • 新闻网站开发项目书如何接广告赚钱
  • wordpress cms门户主题手机百度seo怎么优化
  • 蓬莱做网站联系电话网络营销专业学校排名
  • 网站设计模板免费下载百度指数分析
  • 网站装修的代码怎么做的什么是搜索引擎优化?
  • 句容网站建设教育机构排名
  • 网站开发wbs实例seo入口
  • flash网站整站源码免费下载成都seo招聘
  • 做网站建设跑业务网络推广是以企业产品或服务
  • 做网站必须内容真实性北京seo网站开发
  • shanxi建设银行网站首页佛山全网营销推广
  • 企业网站的基本形式不包括企业网络推广平台
  • 吴江网站建设收费电子商务营销
  • 有网站模板如何预览windows优化大师怎么卸载
  • 如何管理网站域名厦门seo推广优化
  • 电影vip免费网站怎么做的北京朝阳区疫情最新情况
  • 搞个竞拍网站怎么做传媒公司
  • 光谷网站建设网络服务商主要包括
  • 福州网站建设平台外贸网站建设
  • 网站开发人员 kpi指标seo是啥意思
  • 公司网站流程代运营公司是怎么运营的
  • 找网站建设的企业网址ip地址查询工具
  • 动态网页设计网站建设网站seo哪家好
  • 做cpa一定要有网站谷歌官方app下载
  • 网站动态页面怎么做建站流程新手搭建网站第一步
  • 文安做网站提高工作效率总结心得
  • 品牌网站建设c股j东大蝌蚪百度seo自然优化