STM32
直播中

李建设

7年用户 1355经验值
私信 关注
[问答]

STM32F723ZET6定时器输入捕获通道的GPIO不能上拉怎么解决?

我在使用STM32F723ZET6的tiM来捕获外部的信号上升沿,发现外部的信号经过电路元件后到达捕获通道引脚后,幅值变得很小,不能被STM32正确的捕获。我想着将输入捕获的通道的gpio设置为上拉,但是发现在没有使能输入捕获前,该引脚是上拉的高电平,使能后就变成了低电平。是否输入捕获模式和上拉相冲突。

回帖(2)

蒋荣艳

2024-5-21 16:12:44
是因为使用cubemx配置timer的输入捕获时,并没有选择Input Capture direct mode。因为当时选择了Trigger Source后,在cubemx的stm32芯片引脚图上就会有对应的通道选择上,就以为不用选择模式就可以,而且当时在测试的时候,也是能够成功捕获到上升沿,就没有注意到这个问题。实际上,如果这里不选择Input Capture direct mode,对应的引脚实际上是输出,所以输出阻抗就非常低,而外部如果提供足够大的电流,即使是输出,由于内部模式是触发,依旧能够采集到信号上升沿。
举报

陈存楼

2024-5-21 17:14:06
在STM32F723ZET6上,输入捕获通道的GPIO确实不能直接设置为上拉。这是因为输入捕获模式和上拉电阻之间存在一定的冲突。但是,您可以通过以下方法来解决这个问题:

1. 使用外部上拉电阻:在外部电路中添加一个上拉电阻,将输入捕获通道的GPIO连接到一个外部上拉电阻。这样,即使输入捕获模式启用,外部信号的幅值仍然可以得到提升。

2. 使用其他GPIO作为输入:如果可能的话,您可以考虑使用其他具有上拉功能的GPIO作为输入。这样,您可以在不启用输入捕获模式的情况下,将GPIO设置为上拉。

3. 使用外部信号放大器:如果外部信号的幅值太小,您可以考虑使用一个外部信号放大器来提高信号的幅值。这样,即使输入捕获通道的GPIO没有上拉功能,信号仍然可以被STM32正确捕获。

4. 修改外部电路:检查外部电路,看看是否有可能通过修改电路来提高信号的幅值。这可能包括更换电路元件或调整电路布局。

5. 使用软件滤波:在STM32的软件中实现一个滤波器,以消除由于信号幅值不足导致的噪声。这可以帮助提高输入捕获的准确性。

总之,虽然STM32F723ZET6的输入捕获通道的GPIO不能直接设置为上拉,但您可以通过上述方法来解决这个问题。希望这些建议对您有所帮助!
举报

更多回帖

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