STM32. CMSIS #6. Устраняем дребезг кнопки

preview_player
Показать описание
Купить книгу "Освоение STM32 самостоятельно" по CMSIS:

Продолжение предыдущего видео. В реализованном проекте по работе кнопки мы реализовываем алгоритм борьбы с дребезгом кнопки, сначала в виде блок-схем, а потом и в коде на языке Си. Также подробно рассмотрим работу алгоритма в режиме отладки микроконтроллера по шагам с множественными пояснениями.

Скачать проект можно из соответствующего урока:

__________________________________________________
Вы можете помочь каналу через Яндекс-деньги:

или через банковскую карту:
4377 7237 6190 5714
__________________________________________________
Рекомендации по теме
Комментарии
Автор

Свежачок поступил) Спасибо)) По сложившейся традиции ждём CMSIS)))

dobroliub
Автор

я для кнопок использую банальное инкрементирование переменной в цикле. и когда оно достигло определенного значения, считаю кнопку нажатой)

openFrimeTv
Автор

Спасибо за уроки. Небольшие замечания по поводу программы.

1) Button_State = READ_BIT(GPIOB->IDR, GPIO_IDR_IDR3);

Button_State принимает значения:
0х00 - при нажатой кнопке,
0х08 - при отжатой кнопке (это видно в отладчике).

исходя из этого никогда не выполнится условие в обработчике Debounce_Handler:
else
{
if(Button_State == 1)
{
return 0; //кнопка гарантированно отжата
}
}

Правильнее заменить на if(Button_State != 0)

2) В обработчике Debounce_Handler вторую проверку if(Button_State == 0) можно не делать:

if(Button_State == 0)
{
if(Button_count<3)
{
Button_count++;
return 0;
}
else
{
if(Button_State == 0)
return 1; //кнопка гарантированно нажата
}
}


аналогично можно убрать проверку if(Button_State != 0) в следующем коде:

else
{
if(Button_State != 0)
{
return 0; //кнопка гарантированно отжата
}
}

Но, тем не менее, программа работает🙂

ИльясК-лл
Автор

Здравствуйте! Большое спасибо за видеоурок! Будет ли продолжение обучающих видео по данной библиотеке?

ПавелЛобанов-жи
Автор

А не планируете снимать что нибудь по G0/4? Интересные и свежие линейки

ИльяБолдырев-жр
Автор

а с HAL_GPIO_TOGGLE тоже будет работать?

erG