// // Created by villuton on 25.08.2025. // #include "Gpios.h" #include "GpioPin.h" #define GCHRG_PIN_MODE GPIO_MODE_OUTPUT #define GCHRG_PIN_REV GPIO_PIN_NOREVERSE /** * Инициализация пинов включения микросхем зарядника * @param env */ static void gpios_chrg(tChrgEnPins *env) { ///GPIOB env->tab[CHRG_Ch1] = InitGpioPin(GPIOB, GPIO_PINS_2, GCHRG_PIN_MODE, GCHRG_PIN_REV); env->tab[CHRG_Ch2] = InitGpioPin(GPIOB, GPIO_PINS_3, GCHRG_PIN_MODE, GCHRG_PIN_REV); env->tab[CHRG_Ch3] = InitGpioPin(GPIOB, GPIO_PINS_4, GCHRG_PIN_MODE, GCHRG_PIN_REV); env->tab[CHRG_Ch4] = InitGpioPin(GPIOB, GPIO_PINS_5, GCHRG_PIN_MODE, GCHRG_PIN_REV); env->tab[CHRG_Ch5] = InitGpioPin(GPIOB, GPIO_PINS_6, GCHRG_PIN_MODE, GCHRG_PIN_REV); env->tab[CHRG_Ch6] = InitGpioPin(GPIOB, GPIO_PINS_7, GCHRG_PIN_MODE, GCHRG_PIN_REV); env->tab[CHRG_Ch7] = InitGpioPin(GPIOB, GPIO_PINS_8, GCHRG_PIN_MODE, GCHRG_PIN_REV); env->tab[CHRG_Ch8] = InitGpioPin(GPIOB, GPIO_PINS_9, GCHRG_PIN_MODE, GCHRG_PIN_REV); env->tab[CHRG_Ch9] = InitGpioPin(GPIOB, GPIO_PINS_10, GCHRG_PIN_MODE, GCHRG_PIN_REV); env->tab[CHRG_Ch10] = InitGpioPin(GPIOB, GPIO_PINS_11, GCHRG_PIN_MODE, GCHRG_PIN_REV); } #define GBAT_PIN_MODE GPIO_MODE_OUTPUT #define GBAT_PIN_REV GPIO_PIN_NOREVERSE /** * Инициализация пинов включения батареи в цепь * @param env */ static void gpios_bat(tBatEnPins *env) { ///GPIOB env->tab[CHRG_Ch1] = InitGpioPin(GPIOB, GPIO_PINS_12, GBAT_PIN_MODE, GBAT_PIN_REV); env->tab[CHRG_Ch2] = InitGpioPin(GPIOB, GPIO_PINS_13, GBAT_PIN_MODE, GBAT_PIN_REV); env->tab[CHRG_Ch3] = InitGpioPin(GPIOB, GPIO_PINS_14, GBAT_PIN_MODE, GBAT_PIN_REV); env->tab[CHRG_Ch4] = InitGpioPin(GPIOB, GPIO_PINS_15, GBAT_PIN_MODE, GBAT_PIN_REV); ///GPIOC env->tab[CHRG_Ch5] = InitGpioPin(GPIOC, GPIO_PINS_0, GBAT_PIN_MODE, GBAT_PIN_REV); env->tab[CHRG_Ch6] = InitGpioPin(GPIOC, GPIO_PINS_1, GBAT_PIN_MODE, GBAT_PIN_REV); env->tab[CHRG_Ch7] = InitGpioPin(GPIOC, GPIO_PINS_2, GBAT_PIN_MODE, GBAT_PIN_REV); env->tab[CHRG_Ch8] = InitGpioPin(GPIOC, GPIO_PINS_3, GBAT_PIN_MODE, GBAT_PIN_REV); env->tab[CHRG_Ch9] = InitGpioPin(GPIOC, GPIO_PINS_4, GBAT_PIN_MODE, GBAT_PIN_REV); env->tab[CHRG_Ch10] = InitGpioPin(GPIOC, GPIO_PINS_5, GBAT_PIN_MODE, GBAT_PIN_REV); } #define GLED_PIN_MODE GPIO_MODE_OUTPUT #define GLED_PIN_REV GPIO_PIN_NOREVERSE /** * Инициализация светодиодов * @param env */ static void gpios_led(tLedPins *env) { ///GPIOC env->tab[CHRG_Ch1] = InitGpioPin(GPIOC, GPIO_PINS_6, GLED_PIN_MODE, GLED_PIN_REV); env->tab[CHRG_Ch2] = InitGpioPin(GPIOC, GPIO_PINS_7, GLED_PIN_MODE, GLED_PIN_REV); env->tab[CHRG_Ch3] = InitGpioPin(GPIOC, GPIO_PINS_8, GLED_PIN_MODE, GLED_PIN_REV); env->tab[CHRG_Ch4] = InitGpioPin(GPIOC, GPIO_PINS_9, GLED_PIN_MODE, GLED_PIN_REV); env->tab[CHRG_Ch5] = InitGpioPin(GPIOC, GPIO_PINS_10, GLED_PIN_MODE, GLED_PIN_REV); env->tab[CHRG_Ch6] = InitGpioPin(GPIOC, GPIO_PINS_11, GLED_PIN_MODE, GLED_PIN_REV); env->tab[CHRG_Ch7] = InitGpioPin(GPIOC, GPIO_PINS_12, GLED_PIN_MODE, GLED_PIN_REV); env->tab[CHRG_Ch8] = InitGpioPin(GPIOC, GPIO_PINS_13, GLED_PIN_MODE, GLED_PIN_REV); ///GPIOA env->tab[CHRG_Ch9] = InitGpioPin(GPIOA, GPIO_PINS_11, GLED_PIN_MODE, GLED_PIN_REV); env->tab[CHRG_Ch10] = InitGpioPin(GPIOA, GPIO_PINS_12, GLED_PIN_MODE, GLED_PIN_REV); } #define GRE_DE_PIN_MODE GPIO_MODE_OUTPUT #define GRE_DE_PIN_REV GPIO_PIN_NOREVERSE /** * Инициализация пина RE/DE RS485 * @param env */ static void gpios_rs485(tRS485DirectionPins *env) { env->reDePin = InitGpioPin(GPIOA, GPIO_PINS_8, GRE_DE_PIN_MODE, GRE_DE_PIN_REV); } /** * Инициализация GPIOS * @param *env tGpios */ void Gpios_Init(tGpios *env) { gpios_chrg(&env->chrgEnPins); gpios_bat(&env->batEnPins); gpios_led(&env->ledPins); gpios_rs485(&env->directionPins); }