В этой статье будем управлять светодиодом с помощью кнопки. Для начала нужно подключить кнопку по такой схеме:
После этого создать проект в программе STM32CUBEMX, поставить вывод МК, который идет на свтодиод в состояние GPIO_Output, который на кнопку в GPIO_Input. Нажимаем GENERATE CODE и переносимся в среду разработки. Теперь в файле main.c, в цикл while(1) нужно вставить этот код, естественно меняя BTN и LED на свои пины:
После этого пока кнопка нажата, будет гореть светодиод. Разберем код.
if (HAL_GPIO_ReadPin(BTN_GPIO_Port, BTN_Pin) == 1) - if проверяет нажата ли кнопка, сравнивая HAL_GPIO_ReadPin и 1, Если HAL_GPIO_ReadPin равно 1, то условие выполнится, и светодиод зажгется
HAL_GPIO_ReadPin(BTN_GPIO_Port, BTN_Pin) - возвращает состояние пина BTN_Pin, находящегося в порту BTN_GPIO_Port.
HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, 1/0) - включает на пине LED_Pin, находящемся в порту LED_GPIO_Port единицу или ноль
else - иначе, то есть если кнопка не нажата, то светодиод выключится