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

intitlt 山西大同网站建设电商平台的设计

intitlt 山西大同网站建设,电商平台的设计,河南省建设工会网站,网站欣赏公司网站案例文章目录 前言一、通用定时器TIM简介1.STM32F10X系列总共最多有八个定时器#xff1a;2.三种STM32定时器的区别#xff1a;3.STM32 的通用定时器功能#xff1a;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_CH14TIM9TIM14 最多 2 个通道这些通道可以用来作为 输入捕获输出比较PWM 生成(边缘或中间对齐模式) 注意TIM9~TIM14 不支持中间对齐模式单脉冲模式输出 可使用外部信号TIMx_ETR控制定时器和定时器互连可以用 1 个定时器控制另外一个定时器的同步电路。 如下事件发生时产生中断/DMATIM9~TIM14 不支持 DMA更新计数器向上溢出/向下溢出计数器初始化(通过软件或者内部/外部触发)触发事件(计数器启动、停止、初始化或者由内部/外部触发计数)输入捕获输出比较支持针对定位的增量(正交)编码器和霍尔传感器电路TIM9~TIM14 不支持触发输入作为外部时钟或者按周期的电流管理TIM9~TIM14 不支持 4.计数器模式 通用定时器可以向上计数、向下计数、向上向下双向计数模式 向上计数模式计数器从0计数到自动加载值(TIMx_ARR)然后重新从0开始计数并且产生一个计数器溢出事件向下计数模式计数器从自动装入的值(TIMx_ARR)开始向下计数到0然后从自动装入的值重新开始并产生一个计数器向下溢出事件中央对齐模式向上/向下计数计数器从0开始计数到自动装入的值-1产生一个计数器溢出事件然后向下计数到1并且产生一个计数器溢出事件然后再从0开始重新计数 二、基本定时器 1.基本定时器的结构框图 时钟源控制器时基单元 时钟源 时钟源来自RCC的TIMx_CLK(属于内部的CK_INIT) 控制器控制器用于控制定时器复位、使能、计数、触发ADC 涉及到的寄存器CR1/2,DIER,EGR,SR 时基定时器的心脏定时器最重要的就是时基部分包括预分频器、计数器、自动重装载寄存器 预分频器16位预分频器1~65536PSC对内部时钟CK_PSC进行分频之后得到计数器时钟CK_INTCK_PSC/(PSC1)CNT在计数器时钟的驱动下开始计数计数一次的时间为1/CK_INT计数器、重装在寄存器定时器使能CEN置1后计数器CNT在CK_CNT驱动下计数当TNT值与ARR的设定值相等时就自动生成事件并CNT自动清零然后自动重新开始计数如此重复以上过程。 影子寄存器 1.PSC和ARR都有影子寄存器功能框图上有个影子 2.影子寄存器的存在起到一个缓冲的作用用户值-寄存器-影子寄存器-起作用 如果不使用影子寄存器则用户值在写到寄存器之后则里面起作用ARR影子 TIMx_CR1:APRE位控制。 2.定时时间的计算 PSC72-1,定时器的频率 72M/(PSC1) 1MHZARR 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://www.zqtcl.cn/news/160719/

相关文章:

  • 自媒体网站 程序18款免费软件app下载推荐
  • 产业园门户网站建设方案瑞昌网络推广
  • 长春市网站建设动漫wordpress主题下载地址
  • 如何做专业的模板下载网站wordpress 多网址
  • 做qq头像的网站wordpress 安装 服务器 系统
  • 怎样查网站的注册地点百度小说排行榜2021
  • 网站建设中中文模板wordpress siren
  • 设计本官方网站电脑版附近室内装修公司电话
  • 服务外包网站wordpress 禁止转载
  • l礼品文化网站建设不常见的网络营销方式
  • 做网站侵权腾讯企点打不开
  • iis 网站拒绝显示此网页上海网站建设类岗位
  • 营销型网站建设推荐google关键词
  • 网站上线是前端还是后端来做如何做垂直门户网站
  • 网站建设与管理2018海尔集团网站 建设目的
  • ps做网站大小wordpress调用 php文件
  • php网站忘记后台密码江苏网页制作报价
  • 网站模板 哪个好完备的常州网站推广
  • 衡水淘宝的网站建设濮阳市城乡一体化示范区主任
  • 公司网上注册在哪个网站商洛市商南县城乡建设局网站
  • 怎么才能让网站图文展示大连网站建设设计
  • 俱乐部网站 模板seo产品是什么意思
  • 新手学做网站的教学书建造师查询官网
  • win2012 iis添加网站群辉做网站服务器
  • 网站优化课程培训山东网站备案公司
  • top wang域名做网站好事业单位门户网站建设评价
  • 有什么网站可以做简历网站备案表格
  • 网站开发用什么图片格式最好厦门人才网个人会员
  • 关于网站开发的文献深圳网络推广代运营
  • 网站做app的重要性做静态网站有什么用