#include "opamp.h" OPAMP_HandleTypeDef hopamp1; OPAMP_HandleTypeDef hopamp2; OPAMP_HandleTypeDef hopamp3; void configureOPAMPs(void) { hopamp1.Instance = OPAMP1; hopamp1.Init.PowerMode = OPAMP_POWERMODE_NORMALSPEED; hopamp1.Init.Mode = OPAMP_FOLLOWER_MODE; hopamp1.Init.NonInvertingInput = OPAMP_NONINVERTINGINPUT_IO1; hopamp1.Init.InternalOutput = ENABLE; hopamp1.Init.TimerControlledMuxmode = OPAMP_TIMERCONTROLLEDMUXMODE_DISABLE; hopamp1.Init.UserTrimming = OPAMP_TRIMMING_FACTORY; if(HAL_OPAMP_Init(&hopamp1) != HAL_OK) SIMPLEFOC_DEBUG("OPAMP1 init failed."); hopamp2.Instance = OPAMP2; hopamp2.Init.PowerMode = OPAMP_POWERMODE_NORMALSPEED; hopamp2.Init.Mode = OPAMP_FOLLOWER_MODE; hopamp2.Init.NonInvertingInput = OPAMP_NONINVERTINGINPUT_IO2; hopamp2.Init.InternalOutput = ENABLE; hopamp2.Init.TimerControlledMuxmode = OPAMP_TIMERCONTROLLEDMUXMODE_DISABLE; hopamp2.Init.UserTrimming = OPAMP_TRIMMING_FACTORY; if(HAL_OPAMP_Init(&hopamp2) != HAL_OK) SIMPLEFOC_DEBUG("OPAMP2 init failed."); hopamp3.Instance = OPAMP2; hopamp3.Init.PowerMode = OPAMP_POWERMODE_NORMALSPEED; hopamp3.Init.Mode = OPAMP_FOLLOWER_MODE; hopamp3.Init.NonInvertingInput = OPAMP_NONINVERTINGINPUT_IO1; hopamp3.Init.InternalOutput = ENABLE; hopamp3.Init.TimerControlledMuxmode = OPAMP_TIMERCONTROLLEDMUXMODE_DISABLE; hopamp3.Init.UserTrimming = OPAMP_TRIMMING_FACTORY; if(HAL_OPAMP_Init(&hopamp3) != HAL_OK) SIMPLEFOC_DEBUG("OPAMP3 init failed."); } void OPAMP_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStruct = {0}; __HAL_RCC_GPIOA_CLK_ENABLE(); GPIO_InitStruct.Pin = GPIO_PIN_3; GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); __HAL_RCC_GPIOB_CLK_ENABLE(); GPIO_InitStruct.Pin = GPIO_PIN_0; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); GPIO_InitStruct.Pin = GPIO_PIN_13; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); } void HAL_OPAMP_MspDeInit(OPAMP_HandleTypeDef *opampHandle) { if (opampHandle->Instance == OPAMP1) { HAL_GPIO_DeInit(GPIOA, GPIO_PIN_3); } else if (opampHandle->Instance == OPAMP2) { HAL_GPIO_DeInit(GPIOB, GPIO_PIN_0); } else if (opampHandle->Instance == OPAMP3) { HAL_GPIO_DeInit(GPIOB, GPIO_PIN_13); } }