Initializes the OPAMP according to the specified parameters in the OPAMP_InitTypeDef and initialize the associated handle.
282 HAL_StatusTypeDef status =
HAL_OK;
283 uint32_t updateotrlpotr;
305 assert_param(IS_OPAMP_POWER_SUPPLY_RANGE(hopamp->Init.PowerSupplyRange));
306 assert_param(IS_OPAMP_POWERMODE(hopamp->Init.PowerMode));
307 assert_param(IS_OPAMP_FUNCTIONAL_NORMALMODE(hopamp->Init.Mode));
308 assert_param(IS_OPAMP_NONINVERTING_INPUT(hopamp->Init.NonInvertingInput));
312 #if (USE_HAL_OPAMP_REGISTER_CALLBACKS == 1) 313 if(hopamp->MspInitCallback == NULL)
320 if ((hopamp->Init.Mode) == OPAMP_STANDALONE_MODE)
322 assert_param(IS_OPAMP_INVERTING_INPUT_STANDALONE(hopamp->Init.InvertingInput));
325 if ((hopamp->Init.Mode) == OPAMP_PGA_MODE)
327 assert_param(IS_OPAMP_INVERTING_INPUT_PGA(hopamp->Init.InvertingInput));
330 if ((hopamp->Init.Mode) == OPAMP_PGA_MODE)
335 assert_param(IS_OPAMP_TRIMMING(hopamp->Init.UserTrimming));
336 if ((hopamp->Init.UserTrimming) == OPAMP_TRIMMING_USER)
338 if (hopamp->Init.PowerMode == OPAMP_POWERMODE_NORMAL)
340 assert_param(IS_OPAMP_TRIMMINGVALUE(hopamp->Init.TrimmingValueP));
341 assert_param(IS_OPAMP_TRIMMINGVALUE(hopamp->Init.TrimmingValueN));
345 assert_param(IS_OPAMP_TRIMMINGVALUE(hopamp->Init.TrimmingValuePLowPower));
346 assert_param(IS_OPAMP_TRIMMINGVALUE(hopamp->Init.TrimmingValueNLowPower));
356 #if (USE_HAL_OPAMP_REGISTER_CALLBACKS == 1) 357 hopamp->MspInitCallback(hopamp);
364 CLEAR_BIT(hopamp->Instance->CSR, OPAMP_CSR_CALON);
366 if (hopamp->Init.Mode == OPAMP_PGA_MODE)
368 MODIFY_REG(hopamp->Instance->CSR, OPAMP_CSR_INIT_MASK_PGA, \
369 hopamp->Init.PowerMode | \
370 hopamp->Init.Mode | \
371 hopamp->Init.PgaGain | \
372 hopamp->Init.InvertingInput | \
373 hopamp->Init.NonInvertingInput | \
374 hopamp->Init.UserTrimming);
377 if (hopamp->Init.Mode == OPAMP_FOLLOWER_MODE)
380 MODIFY_REG(hopamp->Instance->CSR, OPAMP_CSR_INIT_MASK_FOLLOWER, \
381 hopamp->Init.PowerMode | \
382 hopamp->Init.Mode | \
383 hopamp->Init.NonInvertingInput | \
384 hopamp->Init.UserTrimming);
387 if (hopamp->Init.Mode == OPAMP_STANDALONE_MODE)
389 MODIFY_REG(hopamp->Instance->CSR, OPAMP_CSR_INIT_MASK_STANDALONE, \
390 hopamp->Init.PowerMode | \
391 hopamp->Init.Mode | \
392 hopamp->Init.InvertingInput | \
393 hopamp->Init.NonInvertingInput | \
394 hopamp->Init.UserTrimming);
397 if (hopamp->Init.UserTrimming == OPAMP_TRIMMING_USER)
400 if (hopamp->Init.PowerMode != OPAMP_POWERMODE_LOWPOWER)
406 updateotrlpotr = (((hopamp->Init.TrimmingValueP) << (OPAMP_INPUT_NONINVERTING)) \
407 | (hopamp->Init.TrimmingValueN));
408 MODIFY_REG(hopamp->Instance->OTR, OPAMP_OTR_TRIMOFFSETN | OPAMP_OTR_TRIMOFFSETP, updateotrlpotr);
415 updateotrlpotr = (((hopamp->Init.TrimmingValuePLowPower) << (OPAMP_INPUT_NONINVERTING)) \
416 | (hopamp->Init.TrimmingValueNLowPower));
417 MODIFY_REG(hopamp->Instance->LPOTR, OPAMP_OTR_TRIMOFFSETN | OPAMP_OTR_TRIMOFFSETP, updateotrlpotr);
424 MODIFY_REG(OPAMP1->CSR, OPAMP1_CSR_OPARANGE, hopamp->Init.PowerSupplyRange);
CLEAR_BIT(hrtc->Instance->CR, RTC_CR_WUTE)
void HAL_OPAMP_MspInit(OPAMP_HandleTypeDef *hopamp)
Initialize the OPAMP MSP.
MODIFY_REG(hrtc->Instance->CR, RTC_CR_WUCKSEL,(uint32_t) WakeUpClock)
assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock))