#include "stm32l0xx.h"
unsigned long animTime;
unsigned long choreTime;
bool wasAlreadyClicked = false;
bool switchStart = false;
void pin_b_en(unsigned long portBPin, uint8_t pinBMode)
{
GPIOB -> MODER &= ~(3UL << (portBPin * 2));
GPIOB -> MODER |= (pinBMode << (portBPin * 2));
}
int main(void)
{
RCC -> IOPENR |= RCC_IOPENR_GPIOBEN; //Проводка тока к порту В (все нужные для проекта пины + 3 слева)
pin_b_en(3, 1); //D3
pin_b_en(4, 1); //D4
pin_b_en(5, 1); //D5
pin_b_en(1, 0); //D6
GPIOB -> PUPDR &= ~(3UL << (1 * 2));
GPIOB -> PUPDR |= (1UL << (1 * 2));
while(1)
{
if(wasAlreadyClicked || (GPIOB -> IDR & (1UL << 1)))
{
switchStart = true;
switch(switchStart)
{
case 0:
{
wasAlreadyClicked = true;
GPIOB -> ODR |= (1UL << 4);
}
default:
GPIOB -> ODR |= (1UL << 4);
break;
}
}
else
{
switchStart = false;
}
}
}Loading
st-nucleo-l031k6
st-nucleo-l031k6