打印
[STM32F7]

外部信号经过电路元件后幅值变小,无法被STM32正确捕获

[复制链接]
71|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jzzllv|  楼主 | 2024-6-29 21:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在使用STM32F723ZET6的TIM捕获外部信号的上升沿时,确实可能会遇到信号幅值变小的问题。如果外部信号经过电路元件后幅值变小,可能无法被STM32正确捕获。这种情况下,将输入捕获通道的GPIO设置为上拉可能是一个解决方法。

上拉和输入捕获的冲突
上拉电阻的作用是在引脚没有驱动电压时提供一个稳定的高电平。然而,输入捕获模式和上拉配置之间可能存在冲突。具体来说,当使能输入捕获功能后,引脚的配置可能会被硬件重新配置,从而影响上拉电阻的作用。

使用特权

评论回复
沙发
jzzllv|  楼主 | 2024-6-29 21:07 | 只看该作者
解决方法
外部上拉电阻:可以尝试在外部电路中添加一个上拉电阻,而不是依赖内部的上拉配置。这将确保信号在到达STM32引脚时有足够的幅值。

信号放大:如果信号幅值过小,可以考虑在信号路径中加入放大电路(例如运算放大器)以提高信号幅值,使其能够被STM32正确捕获。

GPIO配置:

在初始化GPIO时,先配置为上拉输入,然后再配置为TIM输入捕获模式。
确保在配置TIM输入捕获模式之前,正确地配置了GPIO引脚的上拉设置。

使用特权

评论回复
板凳
jzzllv|  楼主 | 2024-6-29 21:11 | 只看该作者
示例代码
以下是一个简单的代码示例,展示如何配置GPIO引脚为上拉输入,然后配置为TIM输入捕获模式:

c
#include "stm32f7xx_hal.h"

// 假设TIM2的CH1用作输入捕获
void TIM_InputCapture_Init(void) {
    __HAL_RCC_TIM2_CLK_ENABLE();
    __HAL_RCC_GPIOA_CLK_ENABLE();

    GPIO_InitTypeDef GPIO_InitStruct;
   
    // 1. 配置GPIO为上拉输入
    GPIO_InitStruct.Pin = GPIO_PIN_0;
    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
    GPIO_InitStruct.Pull = GPIO_PULLUP;
    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

    // 2. 配置GPIO为TIM输入捕获模式
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
    GPIO_InitStruct.Alternate = GPIO_AF1_TIM2;
    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

    TIM_HandleTypeDef htim2;
    TIM_IC_InitTypeDef sConfigIC;

    // 初始化TIM2
    htim2.Instance = TIM2;
    htim2.Init.Prescaler = 0;
    htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
    htim2.Init.Period = 0xFFFF;
    htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
    HAL_TIM_IC_Init(&htim2);

    // 配置输入捕获通道
    sConfigIC.ICPolarity = TIM_INPUTCHANNELPOLARITY_RISING;
    sConfigIC.ICSelection = TIM_ICSELECTION_DIRECTTI;
    sConfigIC.ICPrescaler = TIM_ICPSC_DIV1;
    sConfigIC.ICFilter = 0;
    HAL_TIM_IC_ConfigChannel(&htim2, &sConfigIC, TIM_CHANNEL_1);

    // 启动输入捕获中断
    HAL_TIM_IC_Start_IT(&htim2, TIM_CHANNEL_1);
}


使用特权

评论回复
地板
jzzllv|  楼主 | 2024-6-29 21:15 | 只看该作者
通过这种方法,确保在启用TIM输入捕获功能之前,GPIO引脚已经配置为上拉输入,可以缓解上拉和输入捕获之间的冲突。添加外部上拉电阻和信号放大电路也是有效的解决方案。

使用特权

评论回复
5
szt1993| | 2024-6-30 08:39 | 只看该作者
上拉电阻的作用是在引脚没有驱动电压时提供一个稳定的高电平。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

48

帖子

0

粉丝