DAC.c
/**
******************************************************************************
* File Name : DAC.c
* Description : This file provides code for the configuration
* of the DAC instances.
******************************************************************************
*
******************************************************************************
*/
/* Includes ------------------------------------------------------------------*/
#include "dac.h"
/* USER CODE BEGIN 0 */
/* USER CODE END 0 */
DAC_HandleTypeDef hdac1;
DAC_HandleTypeDef hdac2;
/* DAC1 init function */
void MX_DAC1_Init(void)
{
DAC_ChannelConfTypeDef sConfig = {0};
/** DAC Initialization
*/
hdac1.Instance = DAC1;
if (HAL_DAC_Init(&hdac1) != HAL_OK)
{
Error_Handler();
}
/** DAC channel OUT2 config
*/
sConfig.DAC_Trigger = DAC_TRIGGER_NONE;
sConfig.DAC_OutputSwitch = DAC_OUTPUTSWITCH_ENABLE;
if (HAL_DAC_ConfigChannel(&hdac1, &sConfig, DAC_CHANNEL_2) != HAL_OK)
{
Error_Handler();
}
}
/* DAC2 init function */
void MX_DAC2_Init(void)
{
DAC_ChannelConfTypeDef sConfig = {0};
/** DAC Initialization
*/
hdac2.Instance = DAC2;
if (HAL_DAC_Init(&hdac2) != HAL_OK)
{
Error_Handler();
}
/** DAC channel OUT1 config
*/
sConfig.DAC_Trigger = DAC_TRIGGER_NONE;
sConfig.DAC_OutputSwitch = DAC_OUTPUTSWITCH_ENABLE;
if (HAL_DAC_ConfigChannel(&hdac2, &sConfig, DAC_CHANNEL_1) != HAL_OK)
{
Error_Handler();
}
}
void HAL_DAC_MspInit(DAC_HandleTypeDef* dacHandle)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
if(dacHandle->Instance==DAC1)
{
/* USER CODE BEGIN DAC1_MspInit 0 */
/* USER CODE END DAC1_MspInit 0 */
/* DAC1 clock enable */
__HAL_RCC_DAC1_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();
/**DAC1 GPIO Configuration
PA5 ------> DAC1_OUT2
*/
GPIO_InitStruct.Pin = GPIO_PIN_5;
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
/* DAC1 interrupt Init */
HAL_NVIC_SetPriority(TIM6_DAC1_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(TIM6_DAC1_IRQn);
/* USER CODE BEGIN DAC1_MspInit 1 */
/* USER CODE END DAC1_MspInit 1 */
}
else if(dacHandle->Instance==DAC2)
{
/* USER CODE BEGIN DAC2_MspInit 0 */
/* USER CODE END DAC2_MspInit 0 */
/* DAC2 clock enable */
__HAL_RCC_DAC2_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();
/**DAC2 GPIO Configuration
PA6 ------> DAC2_OUT1
*/
GPIO_InitStruct.Pin = GPIO_PIN_6;
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
/* DAC2 interrupt Init */
HAL_NVIC_SetPriority(TIM7_DAC2_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(TIM7_DAC2_IRQn);
/* USER CODE BEGIN DAC2_MspInit 1 */
/* USER CODE END DAC2_MspInit 1 */
}
}
void HAL_DAC_MspDeInit(DAC_HandleTypeDef* dacHandle)
{
if(dacHandle->Instance==DAC1)
{
/* USER CODE BEGIN DAC1_MspDeInit 0 */
/* USER CODE END DAC1_MspDeInit 0 */
/* Peripheral clock disable */
__HAL_RCC_DAC1_CLK_DISABLE();
/**DAC1 GPIO Configuration
PA5 ------> DAC1_OUT2
*/
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_5);
/* DAC1 interrupt Deinit */
/* USER CODE BEGIN DAC1:TIM6_DAC1_IRQn disable */
/**
* Uncomment the line below to disable the "TIM6_DAC1_IRQn" interrupt
* Be aware, disabling shared interrupt may affect other IPs
*/
/* HAL_NVIC_DisableIRQ(TIM6_DAC1_IRQn); */
/* USER CODE END DAC1:TIM6_DAC1_IRQn disable */
/* USER CODE BEGIN DAC1_MspDeInit 1 */
/* USER CODE END DAC1_MspDeInit 1 */
}
else if(dacHandle->Instance==DAC2)
{
/* USER CODE BEGIN DAC2_MspDeInit 0 */
/* USER CODE END DAC2_MspDeInit 0 */
/* Peripheral clock disable */
__HAL_RCC_DAC2_CLK_DISABLE();
/**DAC2 GPIO Configuration
PA6 ------> DAC2_OUT1
*/
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_6);
/* DAC2 interrupt Deinit */
/* USER CODE BEGIN DAC2:TIM7_DAC2_IRQn disable */
/**
* Uncomment the line below to disable the "TIM7_DAC2_IRQn" interrupt
* Be aware, disabling shared interrupt may affect other IPs
*/
/* HAL_NVIC_DisableIRQ(TIM7_DAC2_IRQn); */
/* USER CODE END DAC2:TIM7_DAC2_IRQn disable */
/* USER CODE BEGIN DAC2_MspDeInit 1 */
/* USER CODE END DAC2_MspDeInit 1 */
}
}
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/