コード例 #1
0
ファイル: analogout_device.c プロジェクト: pan-/mbed
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));
}
コード例 #2
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
}
コード例 #3
0
ファイル: analogout_api.c プロジェクト: AllenMcAfee/Smoothie2
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));
}