ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
23 декабря
1034732 Топик полностью
evgeniy1294 (08.09.2020 16:40, просмотров: 404) ответил VLLV на Банальный вопрос реформаторам - где в проекте будет инициализация GPIO? Если в одном месте, то нет системности, если в разных, то нет оптимальности. И чем новая абстракция лучше старых?
Необходимо отталкиваться от того, что вам важнее, а также от личного восприятия проблемы: 

1) Можно сгуппировать IO по портам и проинициализировать в одном месте - будет как минимум оптимально. Я также вижу в этом системность.

2) Можно проинициализировать в разных местах вместе с соответствующей периферией. Будет не оптимально, но вполне системно.

3) Можно сделать как в кубе

/*Configure GPIO pin Output Level */
  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_RESET);

  /*Configure GPIO pin : PA4 */
  GPIO_InitStruct.Pin = GPIO_PIN_4;
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

И так много раз. Это системно или оптимально?

4) Можно сделать традиционно

InitPin( pin, port, parameters...)


И так много раз. Не знаю, системно это или оптимально, но точно лучше, чем (3).