gpt4 book ai didi

c++ - 只需按一次按钮即可通过 USB 发送数据

转载 作者:行者123 更新时间:2023-11-30 04:56:57 27 4
gpt4 key购买 nike

我是 STM32 的新手,但我想创建一个简单的项目,允许我使用 2 个按钮通过 USB 发送数据——只有在按下按钮时发送一次。目前,如果我按住按钮,它将继续发送数据。想从 if 中“突破”,但无济于事。

while (1){
if (HAL_GPIO_ReadPin(Button_GPIO_Port,Button_Pin)== GPIO_PIN_RESET){
HAL_Delay(150);
if (HAL_GPIO_ReadPin(Button_GPIO_Port,Button_Pin) == GPIO_PIN_RESET){
++MessageCounter1;
MessageLength1 = sprintf(DataToSend, "Wiadomosc BUTTON 1 nr %d\n\r", MessageCounter1);
CDC_Transmit_HS(DataToSend, MessageLength1);
}
}
if (HAL_GPIO_ReadPin(Button2_GPIO_Port,Button2_Pin)== GPIO_PIN_RESET){
HAL_Delay(150);
if (HAL_GPIO_ReadPin(Button2_GPIO_Port,Button2_Pin) == GPIO_PIN_RESET{
++MessageCounter2;
MessageLength2 = sprintf(DataToSend, "Wiadomosc BUTTON 2 nr %d\n\r", MessageCounter2);
CDC_Transmit_HS(DataToSend, MessageLength2);
}
}

最佳答案

现在您正在等待脉冲的下降沿,指示按下按钮并使用延迟对其进行去抖动。没关系。

但是,您还必须检查释放按钮时在该引脚上生成的脉冲的上升沿。为此添加一个 bool 变量。

关于c++ - 只需按一次按钮即可通过 USB 发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52255490/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com