|
|
@ -3,7 +3,7 @@ |
|
|
|
#include "cppmain.h" |
|
|
|
#include "usb_device.h" |
|
|
|
|
|
|
|
DAC_HandleTypeDef hdac_global; |
|
|
|
DAC_HandleTypeDef hdac1; |
|
|
|
DMA_HandleTypeDef hdma_dac1; |
|
|
|
TIM_HandleTypeDef htim2; |
|
|
|
TIM_HandleTypeDef htim6; |
|
|
@ -170,8 +170,7 @@ void MX_GPIO_Init(void) |
|
|
|
HAL_GPIO_WritePin(GPIOD, GPIO_PIN_12, GPIO_PIN_RESET); |
|
|
|
|
|
|
|
{ |
|
|
|
GPIO_InitTypeDef GPIO_InitStruct; |
|
|
|
memset(&GPIO_InitStruct, 0, sizeof GPIO_InitStruct); |
|
|
|
GPIO_InitTypeDef GPIO_InitStruct = { 0 }; |
|
|
|
|
|
|
|
GPIO_InitStruct.Pin = GPIO_PIN_0; |
|
|
|
GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING; |
|
|
@ -180,8 +179,7 @@ void MX_GPIO_Init(void) |
|
|
|
} |
|
|
|
|
|
|
|
{ |
|
|
|
GPIO_InitTypeDef GPIO_InitStruct; |
|
|
|
memset(&GPIO_InitStruct, 0, sizeof GPIO_InitStruct); |
|
|
|
GPIO_InitTypeDef GPIO_InitStruct = { 0 }; |
|
|
|
|
|
|
|
GPIO_InitStruct.Pin = GPIO_PIN_12; |
|
|
|
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; |
|
|
@ -190,7 +188,14 @@ void MX_GPIO_Init(void) |
|
|
|
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); |
|
|
|
} |
|
|
|
|
|
|
|
/* EXTI interrupt init*/ |
|
|
|
{ |
|
|
|
GPIO_InitTypeDef GPIO_InitStruct = { 0 }; |
|
|
|
GPIO_InitStruct.Pin = GPIO_PIN_4; |
|
|
|
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; |
|
|
|
GPIO_InitStruct.Pull = GPIO_NOPULL; |
|
|
|
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); |
|
|
|
} |
|
|
|
|
|
|
|
HAL_NVIC_SetPriority(EXTI0_IRQn, 5, 0); |
|
|
|
HAL_NVIC_EnableIRQ(EXTI0_IRQn); |
|
|
|
} |
|
|
@ -202,63 +207,38 @@ void MX_GPIO_Init(void) |
|
|
|
|
|
|
|
void MX_DAC_Init(void) |
|
|
|
{ |
|
|
|
DAC_ChannelConfTypeDef sConfig = { 0 }; |
|
|
|
hdac_global.Instance = DAC; |
|
|
|
if (HAL_DAC_Init(&hdac_global) != HAL_OK) { |
|
|
|
DAC_ChannelConfTypeDef conf = { 0 }; |
|
|
|
hdac1.Instance = DAC1; |
|
|
|
if (HAL_DAC_Init(&hdac1) != HAL_OK) { |
|
|
|
Error_Handler(); |
|
|
|
} |
|
|
|
|
|
|
|
// DAC channel OUT1 config*/
|
|
|
|
sConfig.DAC_Trigger = DAC_TRIGGER_T6_TRGO; |
|
|
|
sConfig.DAC_OutputBuffer = DAC_OUTPUTBUFFER_ENABLE; |
|
|
|
if (HAL_DAC_ConfigChannel(&hdac_global, &sConfig, DAC_CHANNEL_1) != HAL_OK) { |
|
|
|
conf.DAC_Trigger = DAC_TRIGGER_T6_TRGO; |
|
|
|
conf.DAC_OutputBuffer = DAC_OUTPUTBUFFER_ENABLE; |
|
|
|
if (HAL_DAC_ConfigChannel(&hdac1, &conf, DAC_CHANNEL_1) != HAL_OK) { |
|
|
|
Error_Handler(); |
|
|
|
} |
|
|
|
|
|
|
|
// DAC channel OUT2 config
|
|
|
|
sConfig.DAC_Trigger = DAC_TRIGGER_NONE; |
|
|
|
if (HAL_DAC_ConfigChannel(&hdac_global, &sConfig, DAC_CHANNEL_2) != HAL_OK) { |
|
|
|
hdma_dac1.Instance = DMA1_Stream5; |
|
|
|
hdma_dac1.Init.Channel = DMA_CHANNEL_7; |
|
|
|
hdma_dac1.Init.Direction = DMA_MEMORY_TO_PERIPH; |
|
|
|
hdma_dac1.Init.PeriphInc = DMA_PINC_DISABLE; |
|
|
|
hdma_dac1.Init.MemInc = DMA_MINC_ENABLE; |
|
|
|
hdma_dac1.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD; |
|
|
|
hdma_dac1.Init.MemDataAlignment = DMA_MDATAALIGN_WORD; |
|
|
|
hdma_dac1.Init.Mode = DMA_NORMAL; |
|
|
|
hdma_dac1.Init.Priority = DMA_PRIORITY_LOW; |
|
|
|
hdma_dac1.Init.FIFOMode = DMA_FIFOMODE_DISABLE; |
|
|
|
if (HAL_DMA_Init(&hdma_dac1) != HAL_OK) { |
|
|
|
Error_Handler(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
void HAL_DAC_MspInit(DAC_HandleTypeDef *dacHandle) |
|
|
|
{ |
|
|
|
GPIO_InitTypeDef GPIO_InitStruct = { 0 }; |
|
|
|
if (dacHandle->Instance == DAC) { |
|
|
|
/* DAC clock enable */ |
|
|
|
/**DAC GPIO Configuration
|
|
|
|
PA4 ------> DAC_OUT1 |
|
|
|
PA5 ------> DAC_OUT2 |
|
|
|
*/ |
|
|
|
GPIO_InitStruct.Pin = GPIO_PIN_4 | GPIO_PIN_5; |
|
|
|
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; |
|
|
|
GPIO_InitStruct.Pull = GPIO_NOPULL; |
|
|
|
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); |
|
|
|
|
|
|
|
/* DAC DMA Init */ |
|
|
|
/* DAC1 Init */ |
|
|
|
hdma_dac1.Instance = DMA1_Stream5; |
|
|
|
hdma_dac1.Init.Channel = DMA_CHANNEL_7; |
|
|
|
hdma_dac1.Init.Direction = DMA_MEMORY_TO_PERIPH; |
|
|
|
hdma_dac1.Init.PeriphInc = DMA_PINC_DISABLE; |
|
|
|
hdma_dac1.Init.MemInc = DMA_MINC_ENABLE; |
|
|
|
hdma_dac1.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD; |
|
|
|
hdma_dac1.Init.MemDataAlignment = DMA_MDATAALIGN_WORD; |
|
|
|
hdma_dac1.Init.Mode = DMA_NORMAL; |
|
|
|
hdma_dac1.Init.Priority = DMA_PRIORITY_LOW; |
|
|
|
hdma_dac1.Init.FIFOMode = DMA_FIFOMODE_DISABLE; |
|
|
|
if (HAL_DMA_Init(&hdma_dac1) != HAL_OK) { |
|
|
|
Error_Handler(); |
|
|
|
} |
|
|
|
|
|
|
|
__HAL_LINKDMA(dacHandle, DMA_Handle1, hdma_dac1); |
|
|
|
} |
|
|
|
__HAL_LINKDMA(&hdac1, DMA_Handle1, hdma_dac1); |
|
|
|
} |
|
|
|
|
|
|
|
void HAL_DAC_MspDeInit(DAC_HandleTypeDef *dacHandle) |
|
|
|
{ |
|
|
|
if (dacHandle->Instance == DAC) { |
|
|
|
if (dacHandle->Instance == DAC1) { |
|
|
|
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_4 | GPIO_PIN_5); |
|
|
|
HAL_DMA_DeInit(dacHandle->DMA_Handle1); |
|
|
|
} |
|
|
@ -272,7 +252,6 @@ void HAL_DAC_MspDeInit(DAC_HandleTypeDef *dacHandle) |
|
|
|
void MX_DMA_Init(void) |
|
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
/* DMA interrupt init */ |
|
|
|
/* DMA1_Stream5_IRQn interrupt configuration */ |
|
|
|
HAL_NVIC_SetPriority(DMA1_Stream5_IRQn, 5, 0); |
|
|
|