ST意法半导体
直播中

无人岛

10年用户 929经验值
擅长:嵌入式技术 制造/封装 控制/MCU
私信 关注
[问答]

stm32输入捕获模式下,为什么IC1F=0000对应TIM_ICFilter=0x00?



为什么IC1F=0000对应tiM_ICFilter=0x00?如果IC1F=1000,那么TIM_ICFilter是多少?它们之间的对应关系是什么?

回帖(2)

刘璐

2025-3-11 10:50:38
这里的滤波配置是针对输入捕获而言的。


TIM_ICFilter只是个变量,它最终就是为了配置TIMx_CCMRn寄存器中的ICnF3:0]控制段,
换句话说,TIM_ICFilter的值就对应到ICnF字段的值。对应关系就是这样的,其值的范围就
0~15.
举报

康大争

2025-3-12 17:44:35

在STM32的输入捕获模式下,IC1F(Input Capture 1 Filter)是一个用于配置输入捕获通道1的滤波器参数的寄存器字段。TIM_ICFilter 是一个与 IC1F 对应的枚举值,用于在STM32 HAL库中配置滤波器。


1. 为什么 IC1F=0000 对应 TIM_ICFilter=0x00?


IC1F 是一个4位的字段,用于配置输入捕获通道1的滤波器。IC1F=0000 表示不使用滤波器,即输入信号直接通过,不进行任何滤波处理。在这种情况下,TIM_ICFilter 的值为 0x00,表示滤波器被禁用。


2. 如果 IC1F=1000,那么 TIM_ICFilter 是多少?


IC1F 的4位值决定了滤波器的采样频率和采样次数。IC1F=1000 对应的滤波器配置是:采样频率为 f_{CK_INT}/8,采样次数为 6。


在STM32 HAL库中,TIM_ICFilter 是一个枚举类型,其值与 IC1F 的值对应。IC1F=1000 对应的 TIM_ICFilter 值是 0x08


3. 它们之间的对应关系是什么?


IC1FTIM_ICFilter 之间的对应关系是直接的,TIM_ICFilter 的值就是 IC1F 的值。具体对应关系如下:













































































































IC1F (二进制) IC1F (十六进制) TIM_ICFilter 滤波器配置
0000 0x00 0x00 无滤波器
0001 0x01 0x01 f_{CK_INT}/1, N=2
0010 0x02 0x02 f_{CK_INT}/1, N=4
0011 0x03 0x03 f_{CK_INT}/1, N=8
0100 0x04 0x04 f_{CK_INT}/2, N=6
0101 0x05 0x05 f_{CK_INT}/2, N=8
0110 0x06 0x06 f_{CK_INT}/4, N=6
0111 0x07 0x07 f_{CK_INT}/4, N=8
1000 0x08 0x08 f_{CK_INT}/8, N=6
1001 0x09 0x09 f_{CK_INT}/8, N=8
1010 0x0A 0x0A f_{CK_INT}/16, N=5
1011 0x0B 0x0B f_{CK_INT}/16, N=6
1100 0x0C 0x0C f_{CK_INT}/16, N=8
1101 0x0D 0x0D f_{CK_INT}/32, N=5
1110 0x0E 0x0E f_{CK_INT}/32, N=6
1111 0x0F 0x0F f_{CK_INT}/32, N=8

总结



  • IC1F=0000 对应 TIM_ICFilter=0x00,表示禁用滤波器。

  • IC1F=1000 对应 TIM_ICFilter=0x08,表示采样频率为 f_{CK_INT}/8,采样次数为 6。

  • IC1FTIM_ICFilter 之间的对应关系是直接的,TIM_ICFilter 的值就是 IC1F 的值。

举报

更多回帖

发帖
×
20
完善资料,
赚取积分