【发布时间】:2021-01-15 14:32:12
【问题描述】:
我正在寻找使用 STM32 获得锁存开关功能的代码。 我尝试过的以下代码在 stm32 中工作,但只有一个没有闩锁的按钮功能。
while (1)
{
if(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_13)== GPIO_PIN_RESET )
{
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_SET);
}
else
{
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_RESET);
}
}
有人可以帮我在第一次按下按钮时使 GPIOA、GPIO_PIN_5 引脚始终为高电平,而在第二次按下按钮时始终使 GPIOA、GPIO_PIN_5 引脚为低电平吗?
该功能将类似于下面的视频https://www.youtube.com/watch?v=zzWzSPdxA0U
提前谢谢大家。
【问题讨论】:
-
如果您需要帮助,第一步:格式化代码。
-
这里有几件事,请分享有问题的GPIO/s的初始化代码。如果我没有这些,我无法有效地给你一个好的答案。逻辑似乎是有道理的;但是,根据开关的不同,您需要进行一些去抖动以防止意外切换输出。您几乎不应该对这样的开关进行采样,并根据第一个示例做出合乎逻辑的决定。我也很好奇,这些引脚的硬件设置是什么?这将决定如何设计一个数字滤波器/去抖代码,以提供您想要的行为。
-
@JamesNovorita 尽管你说的一切都是正确的,但这段代码似乎更像是学习如何编程/使用电子产品的人,所以直接的样本和具体的并不重要。