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

一般网站建设公司有多少客户啊做抽奖的网站犯法吗

一般网站建设公司有多少客户啊,做抽奖的网站犯法吗,衡水做wap网站建设,php网站优点一、TIM定时器 STM32高级定时器实战:PWM、捕获与死区控制详解-CSDN博客 二、相关函数 1.TIM_TimeBaseInitTypeDef结构体讲解 typedef struct {uint16_t TIM_Prescaler; // 预分频器,用于设置定时器计数频率uint16_t TIM_CounterMode; /…

一、TIM定时器

STM32高级定时器实战:PWM、捕获与死区控制详解-CSDN博客

二、相关函数

1.TIM_TimeBaseInitTypeDef结构体讲解

typedef struct
{uint16_t TIM_Prescaler;         // 预分频器,用于设置定时器计数频率uint16_t TIM_CounterMode;       // 计数模式:向上、向下或中心对齐模式
// 自动重装载寄存器值,定时周期 = (TIM_Period + 1) * (Prescaler + 1) / Timer_Clockuint16_t TIM_Period;            uint16_t TIM_ClockDivision;     // 时钟分频(用于滤波器),对输入捕获/死区时间等有影响uint8_t  TIM_RepetitionCounter; // 重复计数器(高级定时器)
} TIM_TimeBaseInitTypeDef;

2.基本、通用、高级定时器

类型举例PWM输入捕获/输出比较死区控制互补输出重复计数器主从同步中断/定时功能
基本定时器TIM6、TIM7✅ 支持中断、定时
通用定时器TIM2~TIM5✅ 支持多种模式
高级定时器TIM1、TIM8✅ 功能最强大
分类功能特性常见用途
基本定时器只支持定时和中断简单定时中断、DAC 触发
通用定时器支持 PWM、输入捕获、输出比较等电机控制、PWM、信号测量
高级定时器通用功能 + 死区 + 互补 + 重复计数器等高级电机控制、逆变器、功率控制

3.TIM_ClearFlag函数讲解

用于 清除定时器中断/状态标志位。它的本质就是将 TIMx->SR 中某些标志位置 0。

void TIM_ClearFlag(TIM_TypeDef* TIMx, uint16_t TIM_IT);
参数说明
TIMx要操作的定时器(如 TIM2, TIM3 等)
TIM_IT要清除的中断标志位,可以是以下值之一或它们的组合:
- TIM_IT_Update (更新中断)
- TIM_IT_CC1 ~ TIM_IT_CC4(通道中断)
- TIM_IT_Trigger(触发中断)
- TIM_IT_COM(通讯中断)
  • 必须清除标志位,否则定时器中断会不断重复进入。

  • 清除标志位 应该在中断处理函数中进行

  • 可以组合多个标志一起清除:

4.TIM_ITConfig函数讲解

开启或关闭指定的定时器中断源(如更新中断、捕获比较中断、触发中断等)。

void TIM_ITConfig(TIM_TypeDef* TIMx, uint16_t TIM_IT, FunctionalState NewState);
参数名含义
TIMx要配置的定时器,例如 TIM1 ~ TIM17(取决于芯片型号)
TIM_IT中断类型
NewStateENABLEDISABLE,表示启用或关闭该中断
宏定义含义
TIM_IT_Update更新中断(即计数器溢出)
TIM_IT_CC1捕获/比较 1 中断
TIM_IT_CC2捕获/比较 2 中断
TIM_IT_CC3捕获/比较 3 中断
TIM_IT_CC4捕获/比较 4 中断
TIM_IT_Trigger触发中断
TIM_IT_COM通讯中断(高级定时器)
TIM_IT_Break断路器中断(高级定时器)

此函数 不会 配置 NVIC,必须另外调用 NVIC_Init() 注册中断号;

TIM_ITConfig() 会设置 TIMx->DIER(DMA/中断使能寄存器) 中对应中断的使能位;

5.TIM_GetITStatus函数讲解

用于 查询某个定时器中断是否触发 的函数。

ITStatus TIM_GetITStatus(TIM_TypeDef* TIMx, uint16_t TIM_IT);
参数说明
TIMx要查询的定时器(如 TIM1 ~ TIM17,具体取决于芯片型号)
TIM_IT要查询的中断源(如 TIM_IT_UpdateTIM_IT_CC1 等)

🔁 返回值:

  • SET:指定的中断标志已经被置位,即中断已经触发。

  • RESET:指定的中断标志未被置位。

TIM_GetITStatus() 会检查定时器的以下两个寄存器:

  1. TIMx->SR:状态寄存器,包含中断标志位

  2. TIMx->DIER:中断使能寄存器,对应中断是否使能

⚠️ 只有当中断标志位被置位,并且该中断已使能时,函数才返回 SET

6.TIM_ClearITPendingBit函数讲解

用于 清除定时器中断挂起标志位(Pending Bit)

void TIM_ClearITPendingBit(TIM_TypeDef* TIMx, uint16_t TIM_IT);

当某个定时器中断发生时,标志位(比如 UIF)会在 SR 寄存器中置位,表示该中断事件已发生。如果不清除该标志位,下一次进入中断时,标志位仍然为1,会导致反复进入中断,造成“死循环”现象。因此,需要在中断服务函数中调用此函数清除中断标志位。该函数本质上就是对 TIMx->SR 寄存器中某些位写 0 来清除挂起标志。

void TIM3_IRQHandler(void)
{// 判断是否为更新中断if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET){TIM_ClearITPendingBit(TIM3, TIM_IT_Update);  // 清除中断标志位// 执行你的中断处理逻辑}
}

7.TIM_ClearITPendingBit与TIM_ClearFlag有何区别

其实重点在Flag和IT,前者是外设的状态标志,而后者是外设的中断标志。状态标志就是一个外设它有自身的一些标志位(Flag),来表明它处于什么状态。中断标志就是使能外设的中断后,每次发生一次中断,它会表明发生了什么样的中断,同样中断也有相应的标记。两者分别靠函数TIM_GetFlagStatus()和函数TIM_GetITStatus()来获取。

TIM_ClearITPendingBit一般用于 中断服务函数中,防止中断反复进入。

TIM_ClearFlag通常用于轮询模式下清除标志位。

可以看出两个函数的实现基本一致。

http://www.dtcms.com/wzjs/799980.html

相关文章:

  • 网站界面用什么软件做wordpress 不显示首页
  • 网站主播有些网站突然无法访问
  • 订餐网站建设网站图标用代码代替
  • 免费下载网站模板wordpress上传更新
  • 看电视剧的免费网站app下载制作app免费网站模板
  • 网站建设怎么赚钱郑州seo规则
  • 企业做网站电话约见客户的对话什么是网站优化主要包括那几个
  • 建筑业务网站建设wordpress主题知言
  • 动态ip服务器可以做网站吗1元购类似网站架设药多少钱
  • 做网站需求需要沟通什么去哪个网站可以接单做ps等等
  • 企业在网站推广免费行情软件app网站大全
  • 网站做反向代理对百度收录有影响吗厦门市建设局官网
  • 红酒营销型网站建设wordpress阿里云图片不显示不出来
  • 苏州知名高端网站建设网络公司个人如何开发手机app
  • 自己电脑做网站要下载免费域名注册网站源码
  • 简洁网站布局专业ppt制作价格
  • 通过社交网站来做招聘决定简单的个人网站html
  • 做网站练手做童车外贸上哪个网站
  • 网站内备案名称 修改网站开发报价范围
  • 网站报404错误怎么解决wordpress2010如何适应手机
  • 南宁本地网站有哪些?做珠宝商城网站
  • 农产品网站建设策划方案青岛网站建设公司代理
  • 班级网站的建设调查表优秀的电商设计网站有哪些内容
  • 网站后台密码忘记国家批准做新闻的网站
  • 服务器做网站空间怎么在百度建设一个网站
  • 福州台江区网站建设综合门户网站是什么意思
  • 建筑设计案例网站推荐网站上的广告怎么做
  • swoole做网站有用建站宝盒做网站的吗
  • 用虚拟主机做网站移动端的网站
  • 制作网页网站费用属于资本性支出吗wordpress 汉化