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

专业返利网站建设企业网站建设河北

专业返利网站建设,企业网站建设河北,河南网站建设哪家公司好,邯郸网站优化技巧STM32 TIM#xff08;定时器/计数器#xff09;模块的中断流程如下#xff1a; 配置TIM寄存器#xff1a;首先#xff0c;通过配置TIM相关的寄存器来设置计时器的基本参数#xff0c;例如预分频系数、计数模式、计数器周期等。 使能TIM中断#xff1a;使用TIM_ITConfig函… STM32 TIM定时器/计数器模块的中断流程如下 配置TIM寄存器首先通过配置TIM相关的寄存器来设置计时器的基本参数例如预分频系数、计数模式、计数器周期等。 使能TIM中断使用TIM_ITConfig函数或者直接操作TIM的相关寄存器将所需的中断使能位置1。可以选择使能不同类型的中断如更新中断、比较中断等。 配置NVIC中断通过配置NVICNested Vectored Interrupt Controller的相关寄存器设置中断优先级和中断向量。可以使用NVIC_Init函数或者直接操作NVIC相关寄存器来完成配置。 编写中断服务程序ISR在中断发生时处理器会跳转到相应的中断服务程序。在中断服务程序中根据需要进行相应的处理操作例如读取标志位、清除中断标志、处理中断逻辑等。 中断结束与返回在中断服务程序的最后使用return指令退出中断服务程序并将控制权返回到主程序。 接下来是时基单元的各个部分的作用 预分频器Prescaler预分频器用于控制计数器的时钟频率。通过设置预分频系数可以将外部时钟频率分频得到内部时钟频率供计数器使用。 计数器Counter计数器是TIM模块中的关键部分用于记录计时或计数的值。根据不同的计数模式计数器可以向上、向下或双向计数。 自动重载寄存器Auto-reload Register自动重载寄存器确定了计数器溢出的点也即计数器的周期值。当计数器达到自动重载寄存器的值时计数器会重新从0开始计数。 比较寄存器Compare Register比较寄存器用于与计数器的值进行比较。可以设置一个或多个比较值并在计数器的值与某个比较值相等时触发中断或产生某个特定的事件。 控制寄存器Control Register控制寄存器用于配置和控制TIM模块的工作方式如使能或禁止计时器、选择计时器的工作模式、使能或禁止中断等。 中断与事件Interrupts and EventsTIM模块支持多种中断和事件如更新中断计数器溢出时触发、比较中断计数器与比较值相等时触发等。可以根据需要选择使能或禁止相应的中断或事件以实现特定的功能。 时基单元通过预分频器、计数器和自动重载寄存器的组合实现了定时或计数的功能。通过与比较寄存器的结合可以产生不同的中断或事件实现更加灵活和高级的定时和计数功能。 函数解析 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE)是一个函数调用用于使能TIM2外设的时钟。它的作用是将控制寄存器中的时钟使能位设置为1以启用TIM2外设的时钟。TIM_InternalClockConfig(TIM2)是另一个函数调用用于将TIM2的时钟源配置为内部时钟。这意味着TIM2将使用内部时钟作为其时钟源。接下来是对TIM2进行基本时间基准的初始化首先创建一个名为TIM_TimeBaseInitStructure的结构体变量用于配置TIM2的基本参数。TIM_TimeBaseInitStructure.TIM_ClockDivision TIM_CKD_DIV1; TIM_TimeBaseInitStructure.TIM_CounterMode TIM_CounterMode_Up; TIM_TimeBaseInitStructure.TIM_Period 10000 - 1; TIM_TimeBaseInitStructure.TIM_Prescaler 7200 - 1; TIM_TimeBaseInitStructure.TIM_RepetitionCounter 0; TIM_TimeBaseInit(TIM2, TIM_TimeBaseInitStructure); TIM_ClockDivision是时钟分频系数这里设置为TIM_CKD_DIV1表示不分频。 TIM_CounterMode是计数模式这里设置为TIM_CounterMode_Up表示向上计数。 TIM_Period是计数器的周期值即计数器溢出前的总数。这里设置为10000-1所以计数器将在10000个时钟周期后溢出。 TIM_Prescaler是预分频系数用于控制计数器的时钟频率。这里设置为7200-1所以计数器的时钟频率为72MHz / (7200-11) 10kHz。 TIM_RepetitionCounter是重复计数器的值用于产生重复计数器更新事件。这里设置为0表示不使用重复计数器。 接下来是使能TIM2的更新中断TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE); 这个函数调用将TIM2的更新中断使能位置为1允许产生更新中断。然后是配置NVIC中断优先级分组NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); 这个函数调用将NVIC中断优先级分组设置为2意味着优先级分为4位抢占优先级和0位子优先级。接下来是对NVIC中断进行初始化配置首先创建一个名为NVIC_InitStructure的NVIC_InitTypeDef结构体变量用于配置NVIC中断参数。NVIC_InitStructure.NVIC_IRQChannel TIM2_IRQn; NVIC_InitStructure.NVIC_IRQChannelCmd ENABLE; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority 2; NVIC_InitStructure.NVIC_IRQChannelSubPriority 1; NVIC_Init(NVIC_InitStructure); NVIC_IRQChannel是指定要配置的中断通道这里设置为TIM2_IRQn表示要配置TIM2的中断。 NVIC_IRQChannelCmd是中断使能控制位这里设置为ENABLE表示使能TIM2的中断。 NVIC_IRQChannelPreemptionPriority是抢占优先级这里设置为2。 NVIC_IRQChannelSubPriority是子优先级这里设置为1。 最后是使能TIM2外设TIM_Cmd(TIM2, ENABLE); 这个函数调用将TIM2的使能位设置为1以使TIM2外设开始工作。中断函数 void TIM2_IRQHandler(void) {if (TIM_GetITStatus(TIM2, TIM_IT_Update) SET){Num ;TIM_ClearITPendingBit(TIM2, TIM_IT_Update);} }
http://www.hkea.cn/news/14510318/

相关文章:

  • seo企业站收录在wordpress 需要购买服务器吗
  • 泉州自助建站软件wordpress 响应式 企业网站
  • 微网站内页临沂制作网站多少钱
  • 网站推广工具工作室专业网站设计开发公司
  • 学校要求做网站wordpress 视频 批量
  • 企业网站的首页设计浙江网站制作公司
  • 网站建设制作设计营销 大连青海省西宁市住房城乡建设厅网站
  • 贵州省住房和城乡建设厅网站首页微信公众号私自建设电影网站
  • 莱州免费发布信息的网站平台企业公司网站建设
  • 北京通州住房和城乡建设部网站建设部网站焊工证件查询
  • 如何上传网站多平台管理系统
  • 广东网站建设定制高端网站建设找哪个公司
  • 肥城市网站建设越南建设部网站
  • 如何ps做网站首页受欢迎的昆明网站推广
  • 洛阳网站公司装修设计培训学校
  • 中国建设银行网上银行官方网站已注册商标查询官网
  • 建设牌安全带官方网站杭州做网站比较好的公司
  • 南阳网站托管动漫技术制作专业
  • wordpress建站需要学什么西安做营销型网站
  • 政务公开网站开发企业年金个人查询官网
  • 网站开发做什么的常州网站建设运营
  • 网站模块功能关于网站建设电话销售的话术
  • 专门做文创产品的网站企业网站怎么搭建
  • 网站模板 jspwordpress主题外贸网站
  • 商务网站前台模板网页游戏排行榜百战沙城
  • 做网站的系统功能需求企业标志设计公司
  • 上海做网站开发的公司有哪些wordpress模板导入
  • 多个网站备案wordpress如何让cnzz图标居左
  • 公司网站ICP注销商业网站建设知识点
  • 手机网站建设方案doc好听简短域名