ВходНаше всё Теги codebook PARTS Поиск Опросы Закон Воскресенье
7 августа
1136446 Топик полностью
Costic (04.10.2021 20:47, просмотров: 461) ответил evgeniy1294 на Ну так показывай, как надо) Я всегда не против чем-нибудь поучится.
Показываю как надо: 
GPIO_PinModeSet ( gpioPortA, 0, gpioModePushPull, false );

или

gpio_set_mode ( GPIOB, GPIO_MODE_OUTPUT_2_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO6 );

"Ты не обижайся, но я тебе один умный вещь скажу" (с) Мимино. Ваш код - гавно. Причин несколько. Во-первых, ваш код использует template<>, во-вторых, применение STM, в котором внутри семейства нет унификации. В-третьих, ваша цель - получить на выходе компактный, быстрый минимальный код. Но это ошибочно. Приоритеты должны быть другие. Всё должно быть просто и коротко. Чем меньше кода - тем меньше ошибок, меньше усилий на написаное и меньше время выполнения этого кода.

Код (программа) на С++ должен быть в первую очередь понятен и удобен для Человека. А также переносим и многократно исползуем, как завещал Страуструп. Необходимо отделить программный интерфейс от реализации. И тут template<> хреново работает. По сути это усовершенствованный макрос #define, а теперь его суют везде где нужно и не нужно, но можно.