79 __HAL_RCC_PWR_CLK_ENABLE();
80 __HAL_RCC_SYSCFG_CLK_ENABLE();
97 GPIO_InitTypeDef GPIO_InitStruct = {0};
98 if(hadc->Instance==ADC1)
104 __HAL_RCC_ADC1_CLK_ENABLE();
106 __HAL_RCC_GPIOC_CLK_ENABLE();
107 __HAL_RCC_GPIOA_CLK_ENABLE();
108 __HAL_RCC_GPIOB_CLK_ENABLE();
118 GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_2|GPIO_PIN_4;
119 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
120 GPIO_InitStruct.Pull = GPIO_NOPULL;
121 HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
123 GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_2|GPIO_PIN_6;
124 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
125 GPIO_InitStruct.Pull = GPIO_NOPULL;
126 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
128 GPIO_InitStruct.Pin = GPIO_PIN_0;
129 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
130 GPIO_InitStruct.Pull = GPIO_NOPULL;
131 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
137 hdma_adc1.Init.Direction = DMA_PERIPH_TO_MEMORY;
138 hdma_adc1.Init.PeriphInc = DMA_PINC_DISABLE;
140 hdma_adc1.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD;
141 hdma_adc1.Init.MemDataAlignment = DMA_MDATAALIGN_WORD;
143 hdma_adc1.Init.Priority = DMA_PRIORITY_LOW;
144 hdma_adc1.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
150 __HAL_LINKDMA(hadc,DMA_Handle,
hdma_adc1);
156 else if(hadc->Instance==ADC2)
162 __HAL_RCC_ADC2_CLK_ENABLE();
164 __HAL_RCC_GPIOC_CLK_ENABLE();
165 __HAL_RCC_GPIOA_CLK_ENABLE();
166 __HAL_RCC_GPIOB_CLK_ENABLE();
176 GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_3|GPIO_PIN_5;
177 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
178 GPIO_InitStruct.Pull = GPIO_NOPULL;
179 HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
181 GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_3|GPIO_PIN_7;
182 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
183 GPIO_InitStruct.Pull = GPIO_NOPULL;
184 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
186 GPIO_InitStruct.Pin = GPIO_PIN_1;
187 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
188 GPIO_InitStruct.Pull = GPIO_NOPULL;
189 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
195 hdma_adc2.Init.Direction = DMA_PERIPH_TO_MEMORY;
196 hdma_adc2.Init.PeriphInc = DMA_PINC_DISABLE;
198 hdma_adc2.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD;
199 hdma_adc2.Init.MemDataAlignment = DMA_MDATAALIGN_WORD;
201 hdma_adc2.Init.Priority = DMA_PRIORITY_LOW;
202 hdma_adc2.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
208 __HAL_LINKDMA(hadc,DMA_Handle,
hdma_adc2);
214 else if(hadc->Instance==ADC3)
220 __HAL_RCC_ADC3_CLK_ENABLE();
222 __HAL_RCC_GPIOF_CLK_ENABLE();
233 GPIO_InitStruct.Pin = GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6
234 |GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10;
235 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
236 GPIO_InitStruct.Pull = GPIO_NOPULL;
237 HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
243 hdma_adc3.Init.Direction = DMA_PERIPH_TO_MEMORY;
244 hdma_adc3.Init.PeriphInc = DMA_PINC_DISABLE;
246 hdma_adc3.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD;
247 hdma_adc3.Init.MemDataAlignment = DMA_MDATAALIGN_WORD;
249 hdma_adc3.Init.Priority = DMA_PRIORITY_LOW;
250 hdma_adc3.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
256 __HAL_LINKDMA(hadc,DMA_Handle,
hdma_adc3);
273 if(hadc->Instance==ADC1)
279 __HAL_RCC_ADC1_CLK_DISABLE();
290 HAL_GPIO_DeInit(GPIOC, GPIO_PIN_0|GPIO_PIN_2|GPIO_PIN_4);
292 HAL_GPIO_DeInit(GPIOA, GPIO_PIN_0|GPIO_PIN_2|GPIO_PIN_6);
294 HAL_GPIO_DeInit(GPIOB, GPIO_PIN_0);
297 HAL_DMA_DeInit(hadc->DMA_Handle);
302 else if(hadc->Instance==ADC2)
308 __HAL_RCC_ADC2_CLK_DISABLE();
319 HAL_GPIO_DeInit(GPIOC, GPIO_PIN_1|GPIO_PIN_3|GPIO_PIN_5);
321 HAL_GPIO_DeInit(GPIOA, GPIO_PIN_1|GPIO_PIN_3|GPIO_PIN_7);
323 HAL_GPIO_DeInit(GPIOB, GPIO_PIN_1);
326 HAL_DMA_DeInit(hadc->DMA_Handle);
331 else if(hadc->Instance==ADC3)
337 __HAL_RCC_ADC3_CLK_DISABLE();
349 HAL_GPIO_DeInit(GPIOF, GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6
350 |GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10);
353 HAL_DMA_DeInit(hadc->DMA_Handle);
371 GPIO_InitTypeDef GPIO_InitStruct = {0};
372 if(hcan->Instance==CAN1)
380 __HAL_RCC_CAN1_CLK_ENABLE();
383 __HAL_RCC_GPIOD_CLK_ENABLE();
388 GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1;
389 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
390 GPIO_InitStruct.Pull = GPIO_NOPULL;
391 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
392 GPIO_InitStruct.Alternate = GPIO_AF9_CAN1;
393 HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
396 HAL_NVIC_SetPriority(CAN1_RX0_IRQn, 0, 0);
397 HAL_NVIC_EnableIRQ(CAN1_RX0_IRQn);
402 else if(hcan->Instance==CAN2)
408 __HAL_RCC_CAN2_CLK_ENABLE();
411 __HAL_RCC_CAN1_CLK_ENABLE();
414 __HAL_RCC_GPIOB_CLK_ENABLE();
419 GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_5;
420 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
421 GPIO_InitStruct.Pull = GPIO_NOPULL;
422 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
423 GPIO_InitStruct.Alternate = GPIO_AF9_CAN2;
424 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
427 HAL_NVIC_SetPriority(CAN2_RX0_IRQn, 0, 0);
428 HAL_NVIC_EnableIRQ(CAN2_RX0_IRQn);
433 else if(hcan->Instance==CAN3)
439 __HAL_RCC_CAN3_CLK_ENABLE();
441 __HAL_RCC_GPIOA_CLK_ENABLE();
442 __HAL_RCC_GPIOB_CLK_ENABLE();
447 GPIO_InitStruct.Pin = GPIO_PIN_15;
448 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
449 GPIO_InitStruct.Pull = GPIO_NOPULL;
450 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
451 GPIO_InitStruct.Alternate = GPIO_AF11_CAN3;
452 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
454 GPIO_InitStruct.Pin = GPIO_PIN_3;
455 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
456 GPIO_InitStruct.Pull = GPIO_NOPULL;
457 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
458 GPIO_InitStruct.Alternate = GPIO_AF11_CAN3;
459 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
462 HAL_NVIC_SetPriority(CAN3_RX0_IRQn, 0, 0);
463 HAL_NVIC_EnableIRQ(CAN3_RX0_IRQn);
479 if(hcan->Instance==CAN1)
487 __HAL_RCC_CAN1_CLK_DISABLE();
494 HAL_GPIO_DeInit(GPIOD, GPIO_PIN_0|GPIO_PIN_1);
497 HAL_NVIC_DisableIRQ(CAN1_RX0_IRQn);
502 else if(hcan->Instance==CAN2)
508 __HAL_RCC_CAN2_CLK_DISABLE();
511 __HAL_RCC_CAN1_CLK_DISABLE();
518 HAL_GPIO_DeInit(GPIOB, GPIO_PIN_13|GPIO_PIN_5);
521 HAL_NVIC_DisableIRQ(CAN2_RX0_IRQn);
526 else if(hcan->Instance==CAN3)
532 __HAL_RCC_CAN3_CLK_DISABLE();
538 HAL_GPIO_DeInit(GPIOA, GPIO_PIN_15);
540 HAL_GPIO_DeInit(GPIOB, GPIO_PIN_3);
543 HAL_NVIC_DisableIRQ(CAN3_RX0_IRQn);
559 GPIO_InitTypeDef GPIO_InitStruct = {0};
560 if(
hdac->Instance==DAC)
566 __HAL_RCC_DAC_CLK_ENABLE();
568 __HAL_RCC_GPIOA_CLK_ENABLE();
573 GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_5;
574 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
575 GPIO_InitStruct.Pull = GPIO_NOPULL;
576 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
582 hdma_dac1.Init.Direction = DMA_MEMORY_TO_PERIPH;
583 hdma_dac1.Init.PeriphInc = DMA_PINC_DISABLE;
585 hdma_dac1.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD;
586 hdma_dac1.Init.MemDataAlignment = DMA_MDATAALIGN_HALFWORD;
588 hdma_dac1.Init.Priority = DMA_PRIORITY_LOW;
589 hdma_dac1.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
600 hdma_dac2.Init.Direction = DMA_MEMORY_TO_PERIPH;
601 hdma_dac2.Init.PeriphInc = DMA_PINC_DISABLE;
603 hdma_dac2.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD;
604 hdma_dac2.Init.MemDataAlignment = DMA_MDATAALIGN_HALFWORD;
606 hdma_dac2.Init.Priority = DMA_PRIORITY_LOW;
607 hdma_dac2.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
630 if(
hdac->Instance==DAC)
636 __HAL_RCC_DAC_CLK_DISABLE();
642 HAL_GPIO_DeInit(GPIOA, GPIO_PIN_4|GPIO_PIN_5);
645 HAL_DMA_DeInit(
hdac->DMA_Handle1);
646 HAL_DMA_DeInit(
hdac->DMA_Handle2);
662 GPIO_InitTypeDef GPIO_InitStruct = {0};
663 RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
664 if(hi2c->Instance==I2C2)
672 PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_I2C2;
673 PeriphClkInitStruct.I2c2ClockSelection = RCC_I2C2CLKSOURCE_PCLK1;
674 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
679 __HAL_RCC_GPIOF_CLK_ENABLE();
684 GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1;
685 GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
686 GPIO_InitStruct.Pull = GPIO_NOPULL;
687 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
688 GPIO_InitStruct.Alternate = GPIO_AF4_I2C2;
689 HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
692 __HAL_RCC_I2C2_CLK_ENABLE();
697 else if(hi2c->Instance==I2C4)
705 PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_I2C4;
706 PeriphClkInitStruct.I2c4ClockSelection = RCC_I2C4CLKSOURCE_PCLK1;
707 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
712 __HAL_RCC_GPIOF_CLK_ENABLE();
717 GPIO_InitStruct.Pin = GPIO_PIN_14|GPIO_PIN_15;
718 GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
719 GPIO_InitStruct.Pull = GPIO_NOPULL;
720 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
721 GPIO_InitStruct.Alternate = GPIO_AF4_I2C4;
722 HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
725 __HAL_RCC_I2C4_CLK_ENABLE();
741 if(hi2c->Instance==I2C2)
747 __HAL_RCC_I2C2_CLK_DISABLE();
753 HAL_GPIO_DeInit(GPIOF, GPIO_PIN_0);
755 HAL_GPIO_DeInit(GPIOF, GPIO_PIN_1);
761 else if(hi2c->Instance==I2C4)
767 __HAL_RCC_I2C4_CLK_DISABLE();
773 HAL_GPIO_DeInit(GPIOF, GPIO_PIN_14);
775 HAL_GPIO_DeInit(GPIOF, GPIO_PIN_15);
792 GPIO_InitTypeDef GPIO_InitStruct = {0};
793 if(hspi->Instance==SPI4)
799 __HAL_RCC_SPI4_CLK_ENABLE();
801 __HAL_RCC_GPIOE_CLK_ENABLE();
807 GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_5|GPIO_PIN_6;
808 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
809 GPIO_InitStruct.Pull = GPIO_NOPULL;
810 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
811 GPIO_InitStruct.Alternate = GPIO_AF5_SPI4;
812 HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
818 else if(hspi->Instance==SPI6)
824 __HAL_RCC_SPI6_CLK_ENABLE();
826 __HAL_RCC_GPIOG_CLK_ENABLE();
832 GPIO_InitStruct.Pin = GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14;
833 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
834 GPIO_InitStruct.Pull = GPIO_NOPULL;
835 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
836 GPIO_InitStruct.Alternate = GPIO_AF5_SPI6;
837 HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
854 if(hspi->Instance==SPI4)
860 __HAL_RCC_SPI4_CLK_DISABLE();
867 HAL_GPIO_DeInit(GPIOE, GPIO_PIN_2|GPIO_PIN_5|GPIO_PIN_6);
873 else if(hspi->Instance==SPI6)
879 __HAL_RCC_SPI6_CLK_DISABLE();
886 HAL_GPIO_DeInit(GPIOG, GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14);
903 if(htim_base->Instance==TIM1)
909 __HAL_RCC_TIM1_CLK_ENABLE();
914 else if(htim_base->Instance==TIM2)
920 __HAL_RCC_TIM2_CLK_ENABLE();
922 HAL_NVIC_SetPriority(TIM2_IRQn, 0, 0);
923 HAL_NVIC_EnableIRQ(TIM2_IRQn);
939 if(htim_base->Instance==TIM1)
945 __HAL_RCC_TIM1_CLK_DISABLE();
950 else if(htim_base->Instance==TIM2)
956 __HAL_RCC_TIM2_CLK_DISABLE();
959 HAL_NVIC_DisableIRQ(TIM2_IRQn);
975 GPIO_InitTypeDef GPIO_InitStruct = {0};
976 RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
977 if(huart->Instance==USART3)
985 PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USART3;
986 PeriphClkInitStruct.Usart3ClockSelection = RCC_USART3CLKSOURCE_PCLK1;
987 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
993 __HAL_RCC_USART3_CLK_ENABLE();
995 __HAL_RCC_GPIOD_CLK_ENABLE();
1001 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
1002 GPIO_InitStruct.Pull = GPIO_NOPULL;
1003 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
1004 GPIO_InitStruct.Alternate = GPIO_AF7_USART3;
1005 HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
1022 if(huart->Instance==USART3)
1028 __HAL_RCC_USART3_CLK_DISABLE();
: Header for main.c file. This file contains the common defines of the application.
void Error_Handler(void)
This function is executed in case of error occurrence.
DMA_HandleTypeDef hdma_dac1
void HAL_UART_MspInit(UART_HandleTypeDef *huart)
UART MSP Initialization This function configures the hardware resources used in this example.
void HAL_SPI_MspInit(SPI_HandleTypeDef *hspi)
SPI MSP Initialization This function configures the hardware resources used in this example.
static uint32_t HAL_RCC_CAN1_CLK_ENABLED
DMA_HandleTypeDef hdma_adc1
void HAL_I2C_MspDeInit(I2C_HandleTypeDef *hi2c)
I2C MSP De-Initialization This function freeze the hardware resources used in this example.
DMA_HandleTypeDef hdma_adc3
void HAL_ADC_MspDeInit(ADC_HandleTypeDef *hadc)
ADC MSP De-Initialization This function freeze the hardware resources used in this example.
void HAL_DAC_MspDeInit(DAC_HandleTypeDef *hdac)
DAC MSP De-Initialization This function freeze the hardware resources used in this example.
void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef *htim_base)
TIM_Base MSP De-Initialization This function freeze the hardware resources used in this example.
void HAL_UART_MspDeInit(UART_HandleTypeDef *huart)
UART MSP De-Initialization This function freeze the hardware resources used in this example.
void HAL_CAN_MspDeInit(CAN_HandleTypeDef *hcan)
CAN MSP De-Initialization This function freeze the hardware resources used in this example.
void HAL_CAN_MspInit(CAN_HandleTypeDef *hcan)
CAN MSP Initialization This function configures the hardware resources used in this example.
void HAL_ADC_MspInit(ADC_HandleTypeDef *hadc)
ADC MSP Initialization This function configures the hardware resources used in this example.
DMA_HandleTypeDef hdma_dac2
void HAL_SPI_MspDeInit(SPI_HandleTypeDef *hspi)
SPI MSP De-Initialization This function freeze the hardware resources used in this example.
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef *htim_base)
TIM_Base MSP Initialization This function configures the hardware resources used in this example.
void HAL_I2C_MspInit(I2C_HandleTypeDef *hi2c)
I2C MSP Initialization This function configures the hardware resources used in this example.
void HAL_DAC_MspInit(DAC_HandleTypeDef *hdac)
DAC MSP Initialization This function configures the hardware resources used in this example.
DMA_HandleTypeDef hdma_adc2