用按钮在 C 中进行二进制计数

binary count in C whit a button

printf("hello world\r\n");
fflush(stdout);
int number;
number = 0;
while (1)
{     


    if(HAL_GPIO_ReadPin(SW5_GPIO_Port,SW5_Pin)==GPIO_PIN_RESET){
        HAL_Delay(1000);
        number = number + 1 ;
        printf("number incremented with 1 is: %d\n",number);

    }
} 

我需要创建一个带有 1 个按钮的二进制计数器,我之前已经用名称声明了 4 个 LED: LED5 LED6 LED7 LED8

如果我点击按钮我记入一个数字我必须将这个数字转换为二进制值并将其显示在给定的 LED 上你能帮我吗?

此致

使用&和swift<<你可以这样写:

if (number & 1) {
  AL_GPIO_WritePin(SW5_GPIO_Port, GPIO_PIN_5, 1);
} else {
  AL_GPIO_WritePin(SW5_GPIO_Port, GPIO_PIN_5, 0);
}
if (number & 1 << 1) {
  AL_GPIO_WritePin(SW5_GPIO_Port, GPIO_PIN_6, 1);
} else {
  AL_GPIO_WritePin(SW5_GPIO_Port, GPIO_PIN_6, 0);
}
if (number & 1 << 2) {
  AL_GPIO_WritePin(SW5_GPIO_Port, GPIO_PIN_7, 1);
} else {
  AL_GPIO_WritePin(SW5_GPIO_Port, GPIO_PIN_7, 0);
}
if (number & 1 << 3) {
  AL_GPIO_WritePin(SW5_GPIO_Port, GPIO_PIN_8, 1);
} else {
  AL_GPIO_WritePin(SW5_GPIO_Port, GPIO_PIN_8, 0);
}

不确定激活命令GPIO_PIN,但逻辑在这里