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

定时器输入捕获实验配置

首先,第一个时基工作参数配置 HAL_TIM_IC_Init( )

还是一样的套路,传参是一个句柄,先定义一个结构体

Instance:指向TIM_TypeDef的指针,表示定时器的实例。TIM_TypeDef是一个包含了定时器寄存器的结构体,用于对寄存器进行配置和操作。
Init:定时器基本配置,是一个TIM_Base_InitTypeDef类型的结构体变量,包含了定时器的时钟分频系数、计数模式、自动重装载值等信息。
Channel:定时器活动通道,用于指示当前活动的通道。在定时器的输入捕获和输出比较等功能中使用。
hdma[TIM_DMA_ID_CC1]:定时器DMA句柄数组,用于配置和管理定时器的DMA传输。在使用DMA传输时,可以将DMA句柄与定时器关联。
Lock:定时器锁,用于保护对定时器的并发访问。在多线程或中断环境中使用。
State:定时器状态,表示定时器的当前状态。是一个HAL_TIM_StateTypeDef类型的枚举变量,包括以下值:
HAL_TIM_STATE_RESET:定时器已复位。
HAL_TIM_STATE_READY:定时器准备好并且未启动。
HAL_TIM_STATE_BUSY:定时器正在进行配置或操作。
HAL_TIM_STATE_TIMEOUT:定时器操作超时。
HAL_TIM_STATE_ERROR:定时器操作错误。

基本用不到下面几个,把上面两个使用了即可


接着是输入通道配置HAL_TIM_IC_ConfigChannel()

第一个 ICPolarity 就是极性,

第二个ICSelection 就是通道的映射,

第三个ICPrescaler 就是分屏,

第四个 ICFilter 就是滤波

那么第一个 ICPolarity  就有三个参数选择,上升和下降沿触发

第二个ICSelection 也有三个参数,直接和间接,这里选择直接T1

 第三个ICPrescaler 有四个参数,分别是一分频二分频四分频八分频,这里我们默认不分频,就是一分频

第四个 ICFilter 正常我们不滤波,直接写0即可

接着使用 使能更新中断 __HAL_TIM_ENABLE_IT( )

一共两个参数,第一个还是句柄 handle ,第二个就是中断的类型,这里我们选择上面的更新中断类型

然后我们使用 使能捕获、捕获中断及计数器 HAL_TIM_IC_Start_IT 

一共也是两个参数,句柄和通道,句柄没得说直接使用创建,通道就是我们使用的通道二

这下就完成了我们的 Ic_init 的配置


接着我们写中断服务函数 TIM2_IRQHandler 

它通常是跟中断处理函数 HAL_TIM_IRQHandler 一起使用,只有一个参数也就是句柄


最后就是回调函数 HAL_TIM_IC_CaptureCallback ,在中断处理函数里面找的到,但是我们的步骤图里面写出来了 就不一一找了

最后就是两个NVIC ,参数就是中断线,抢占优先级和响应优先级


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

相关文章:

  • Jmeter中的定时器(二)
  • 全面介绍软件安全测试分类,安全测试方法、安全防护技术、安全测试流程
  • 华为eNSP:RSTP
  • git重置的四种类型(Git Reset)
  • 公司小程序开发制作服务有什么风险点
  • 云计算基础知识
  • 植物明星大乱斗3
  • [产品管理-68]:别让沉没成本影响你未来的决策
  • 【大数据学习 | HBASE】hbase的写数据流程与hbase插入数据
  • nacos单机服务注册源码解析
  • 第14张 GROUP BY 分组
  • caozha-comment(原生PHP评论系统)
  • 支付宝域名如何加入白名单(扫码老是弹窗)
  • Linux 内核中断描述符 (irq_desc) 的初始化与动态分配机制详解
  • 计算机的错误计算(一百五十)
  • 【基于轻量型架构的WEB开发】课程 作业4 AOP
  • CentOS网络配置
  • 第四十一章 Vue之初识VueX
  • 集群架构中Lua脚本的限制以及出现的报错
  • 【王木头】最大似然估计、最大后验估计
  • 23年广大新生赛
  • 由于 C*DN 的不做为,将暂停 C*DN 文章的发表
  • 安全见闻六:通讯协议安全问题剖析
  • DNS域名解析
  • mysql 配置文件 my.cnf 增加 lower_case_table_names = 1 服务启动不了
  • JDBC-Util工具类