/* USER CODE BEGIN Header */ /** ****************************************************************************** * @file dac.c * @brief This file provides code for the configuration * of the DAC instances. ****************************************************************************** * @attention * * Copyright (c) 2023 STMicroelectronics. * All rights reserved. * * This software is licensed under terms that can be found in the LICENSE file * in the root directory of this software component. * If no LICENSE file comes with this software, it is provided AS-IS. * ****************************************************************************** */ /* USER CODE END Header */ /* Includes ------------------------------------------------------------------*/ #include "dac.h" /* USER CODE BEGIN 0 */ /* USER CODE END 0 */ DAC_HandleTypeDef hdac4; DMA_HandleTypeDef hdma_dac4_ch1; /* DAC4 init function */ void MX_DAC4_Init(void) { /* USER CODE BEGIN DAC4_Init 0 */ /* USER CODE END DAC4_Init 0 */ DAC_ChannelConfTypeDef sConfig = {0}; /* USER CODE BEGIN DAC4_Init 1 */ /* USER CODE END DAC4_Init 1 */ /** DAC Initialization */ hdac4.Instance = DAC4; if (HAL_DAC_Init(&hdac4) != HAL_OK) { Error_Handler(); } /** DAC channel OUT1 config */ sConfig.DAC_HighFrequency = DAC_HIGH_FREQUENCY_INTERFACE_MODE_AUTOMATIC; sConfig.DAC_DMADoubleDataMode = DISABLE; sConfig.DAC_SignedFormat = DISABLE; sConfig.DAC_SampleAndHold = DAC_SAMPLEANDHOLD_DISABLE; sConfig.DAC_Trigger = DAC_TRIGGER_T7_TRGO; sConfig.DAC_Trigger2 = DAC_TRIGGER_NONE; sConfig.DAC_OutputBuffer = DAC_OUTPUTBUFFER_DISABLE; sConfig.DAC_ConnectOnChipPeripheral = DAC_CHIPCONNECT_INTERNAL; sConfig.DAC_UserTrimming = DAC_TRIMMING_FACTORY; if (HAL_DAC_ConfigChannel(&hdac4, &sConfig, DAC_CHANNEL_1) != HAL_OK) { Error_Handler(); } /* USER CODE BEGIN DAC4_Init 2 */ /* USER CODE END DAC4_Init 2 */ } void HAL_DAC_MspInit(DAC_HandleTypeDef* dacHandle) { if(dacHandle->Instance==DAC4) { /* USER CODE BEGIN DAC4_MspInit 0 */ /* USER CODE END DAC4_MspInit 0 */ /* DAC4 clock enable */ __HAL_RCC_DAC4_CLK_ENABLE(); /* DAC4 DMA Init */ /* DAC4_CH1 Init */ hdma_dac4_ch1.Instance = DMA1_Channel1; hdma_dac4_ch1.Init.Request = DMA_REQUEST_DAC4_CHANNEL1; hdma_dac4_ch1.Init.Direction = DMA_MEMORY_TO_PERIPH; hdma_dac4_ch1.Init.PeriphInc = DMA_PINC_DISABLE; hdma_dac4_ch1.Init.MemInc = DMA_MINC_ENABLE; hdma_dac4_ch1.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD; hdma_dac4_ch1.Init.MemDataAlignment = DMA_MDATAALIGN_HALFWORD; hdma_dac4_ch1.Init.Mode = DMA_CIRCULAR; hdma_dac4_ch1.Init.Priority = DMA_PRIORITY_LOW; if (HAL_DMA_Init(&hdma_dac4_ch1) != HAL_OK) { Error_Handler(); } __HAL_LINKDMA(dacHandle,DMA_Handle1,hdma_dac4_ch1); /* USER CODE BEGIN DAC4_MspInit 1 */ /* USER CODE END DAC4_MspInit 1 */ } } void HAL_DAC_MspDeInit(DAC_HandleTypeDef* dacHandle) { if(dacHandle->Instance==DAC4) { /* USER CODE BEGIN DAC4_MspDeInit 0 */ /* USER CODE END DAC4_MspDeInit 0 */ /* Peripheral clock disable */ __HAL_RCC_DAC4_CLK_DISABLE(); /* DAC4 DMA DeInit */ HAL_DMA_DeInit(dacHandle->DMA_Handle1); /* DAC4 interrupt Deinit */ /* USER CODE BEGIN DAC4:TIM7_DAC_IRQn disable */ /** * Uncomment the line below to disable the "TIM7_DAC_IRQn" interrupt * Be aware, disabling shared interrupt may affect other IPs */ /* HAL_NVIC_DisableIRQ(TIM7_DAC_IRQn); */ /* USER CODE END DAC4:TIM7_DAC_IRQn disable */ /* USER CODE BEGIN DAC4_MspDeInit 1 */ /* USER CODE END DAC4_MspDeInit 1 */ } } /* USER CODE BEGIN 1 */ /* USER CODE END 1 */