Измените код для WriteLED (), чтобы напрямую использовать регистр ODR.Код должен прочитать текущее значение регистра и затем записать измененное значение в зависимости от того, какие светодиоды должны быть включены или выключены.
Пример кода, данный мне
void HAL_GPIO_TogglePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
{
/* Check the parameters */
assert_param(IS_GPIO_PIN(GPIO_Pin));
GPIOx->ODR ˆ= GPIO_Pin;
}
КодЧто нужно изменить
WriteLED (uint8_t LED, uint8_t State)
{
// Check for correct state
if ((State != LED_OFF) && (State != LED_ON))
{
return;
}
// Turn on/off the LED
switch (LED)
{
case 'L':
HAL_GPIO_WritePin (LD4_GPIO_Port, LD4_Pin, State);
break;
case 'T':
HAL_GPIO_WritePin (LD3_GPIO_Port, LD3_Pin, State);
break;
case 'B':
HAL_GPIO_WritePin (LD6_GPIO_Port, LD6_Pin, State);
break;
case 'R':
HAL_GPIO_WritePin (LD5_GPIO_Port, LD5_Pin, State);
break;
}
return;
}
Как должен выглядеть приведенный выше код при выводе в регистр ODR