Есть порт В микроконтроллера stm32
Я задействую 5,6,7,8 пины. Остальные служат под другие нужды.
В цикле for надо на 5 пин подать 1, а при следующем заходе в цикл - сдвигать ее влево. Получится, что цикл проворачивается и каждый раз нужно ставить 1 с 5 по 8 пин, при этом что бы остальные пины были 0.
Можно конечно сделать вот так
Код: Выделить всё
for(i=0; i<4; i++){
if(i == 0){
GPIO->BSSR |= (1 << 5);
GPIO->BRR |= (1 << 6) | (1 << 7) | (1 << 8);
} else if(i == 1){
GPIO->BSRR |= (1 << 6);
GPIO->BRR |= (1 << 5) | (1 << 7) | (1 << 8);
} else if(i == 2){
GPIO->BSRR |= (1 << 7);
GPIO->BRR |= (1 << 5) | (1 << 6) | (1 << 8);
} else if(i == 3){
GPIO->BSRR |= (1 << 8);
GPIO->BRR |= (1 << 5) | (1 << 6) | (1 << 7);
}
}