void analogout_free(dac_t *obj) { // Reset DAC and disable clock if (obj->pin == PA_4) { pa4_used = 0; } if (obj->pin == PA_5) { pa5_used = 0; } if ((pa4_used == 0) && (pa5_used == 0)) { __HAL_RCC_DAC1_FORCE_RESET(); __HAL_RCC_DAC1_RELEASE_RESET(); __HAL_RCC_DAC1_CLK_DISABLE(); } #if defined(DAC2) if (obj->pin == PA_6) { __HAL_RCC_DAC2_FORCE_RESET(); __HAL_RCC_DAC2_RELEASE_RESET(); __HAL_RCC_DAC2_CLK_DISABLE(); } #endif // Configure GPIO pin_function(obj->pin, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, 0)); }
/** * @brief DeInitialize the DAC MSP. * @param hdac: pointer to a DAC_HandleTypeDef structure that contains * the configuration information for the specified DAC. * @retval None */ void HAL_DAC_MspDeInit(DAC_HandleTypeDef* hdac) { UNUSED(hdac); /* DAC Periph clock disable */ #ifdef __HAL_RCC_DAC1_CLK_DISABLE __HAL_RCC_DAC1_CLK_DISABLE(); #endif #ifdef __HAL_RCC_DAC_CLK_DISABLE __HAL_RCC_DAC_CLK_DISABLE(); #endif }
void analogout_free(dac_t *obj) { // Reset DAC and disable clock if (obj->channel == 1) channel1_used = 0; if (obj->channel == 2) channel2_used = 0; if ((channel1_used == 0) && (channel2_used == 0)) { __HAL_RCC_DAC1_FORCE_RESET(); __HAL_RCC_DAC1_RELEASE_RESET(); __HAL_RCC_DAC1_CLK_DISABLE(); } // Configure GPIO pin_function(obj->pin, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, 0)); }