79 __HAL_RCC_PWR_CLK_ENABLE();
80 __HAL_RCC_SYSCFG_CLK_ENABLE();
84 HAL_NVIC_SetPriority(PendSV_IRQn, 15, 0);
99 GPIO_InitTypeDef GPIO_InitStruct = {0};
100 if(hadc->Instance==ADC1)
106 __HAL_RCC_ADC1_CLK_ENABLE();
108 __HAL_RCC_GPIOC_CLK_ENABLE();
109 __HAL_RCC_GPIOA_CLK_ENABLE();
110 __HAL_RCC_GPIOB_CLK_ENABLE();
120 GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_2|GPIO_PIN_4;
121 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
122 GPIO_InitStruct.Pull = GPIO_NOPULL;
123 HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
125 GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_2|GPIO_PIN_6;
126 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
127 GPIO_InitStruct.Pull = GPIO_NOPULL;
128 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
130 GPIO_InitStruct.Pin = GPIO_PIN_0;
131 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
132 GPIO_InitStruct.Pull = GPIO_NOPULL;
133 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
139 hdma_adc1.Init.Direction = DMA_PERIPH_TO_MEMORY;
140 hdma_adc1.Init.PeriphInc = DMA_PINC_DISABLE;
142 hdma_adc1.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD;
143 hdma_adc1.Init.MemDataAlignment = DMA_MDATAALIGN_WORD;
145 hdma_adc1.Init.Priority = DMA_PRIORITY_LOW;
146 hdma_adc1.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
152 __HAL_LINKDMA(hadc,DMA_Handle,
hdma_adc1);
158 else if(hadc->Instance==ADC2)
164 __HAL_RCC_ADC2_CLK_ENABLE();
166 __HAL_RCC_GPIOC_CLK_ENABLE();
167 __HAL_RCC_GPIOA_CLK_ENABLE();
168 __HAL_RCC_GPIOB_CLK_ENABLE();
178 GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_3|GPIO_PIN_5;
179 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
180 GPIO_InitStruct.Pull = GPIO_NOPULL;
181 HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
183 GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_3|GPIO_PIN_7;
184 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
185 GPIO_InitStruct.Pull = GPIO_NOPULL;
186 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
188 GPIO_InitStruct.Pin = GPIO_PIN_1;
189 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
190 GPIO_InitStruct.Pull = GPIO_NOPULL;
191 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
197 hdma_adc2.Init.Direction = DMA_PERIPH_TO_MEMORY;
198 hdma_adc2.Init.PeriphInc = DMA_PINC_DISABLE;
200 hdma_adc2.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD;
201 hdma_adc2.Init.MemDataAlignment = DMA_MDATAALIGN_WORD;
203 hdma_adc2.Init.Priority = DMA_PRIORITY_LOW;
204 hdma_adc2.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
210 __HAL_LINKDMA(hadc,DMA_Handle,
hdma_adc2);
216 else if(hadc->Instance==ADC3)
222 __HAL_RCC_ADC3_CLK_ENABLE();
224 __HAL_RCC_GPIOF_CLK_ENABLE();
235 GPIO_InitStruct.Pin = GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6
236 |GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10;
237 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
238 GPIO_InitStruct.Pull = GPIO_NOPULL;
239 HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
245 hdma_adc3.Init.Direction = DMA_PERIPH_TO_MEMORY;
246 hdma_adc3.Init.PeriphInc = DMA_PINC_DISABLE;
248 hdma_adc3.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD;
249 hdma_adc3.Init.MemDataAlignment = DMA_MDATAALIGN_WORD;
251 hdma_adc3.Init.Priority = DMA_PRIORITY_LOW;
252 hdma_adc3.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
258 __HAL_LINKDMA(hadc,DMA_Handle,
hdma_adc3);
275 if(hadc->Instance==ADC1)
281 __HAL_RCC_ADC1_CLK_DISABLE();
292 HAL_GPIO_DeInit(GPIOC, GPIO_PIN_0|GPIO_PIN_2|GPIO_PIN_4);
294 HAL_GPIO_DeInit(GPIOA, GPIO_PIN_0|GPIO_PIN_2|GPIO_PIN_6);
296 HAL_GPIO_DeInit(GPIOB, GPIO_PIN_0);
299 HAL_DMA_DeInit(hadc->DMA_Handle);
304 else if(hadc->Instance==ADC2)
310 __HAL_RCC_ADC2_CLK_DISABLE();
321 HAL_GPIO_DeInit(GPIOC, GPIO_PIN_1|GPIO_PIN_3|GPIO_PIN_5);
323 HAL_GPIO_DeInit(GPIOA, GPIO_PIN_1|GPIO_PIN_3|GPIO_PIN_7);
325 HAL_GPIO_DeInit(GPIOB, GPIO_PIN_1);
328 HAL_DMA_DeInit(hadc->DMA_Handle);
333 else if(hadc->Instance==ADC3)
339 __HAL_RCC_ADC3_CLK_DISABLE();
351 HAL_GPIO_DeInit(GPIOF, GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6
352 |GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10);
355 HAL_DMA_DeInit(hadc->DMA_Handle);
373 GPIO_InitTypeDef GPIO_InitStruct = {0};
374 if(hcan->Instance==CAN1)
382 __HAL_RCC_CAN1_CLK_ENABLE();
385 __HAL_RCC_GPIOD_CLK_ENABLE();
390 GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1;
391 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
392 GPIO_InitStruct.Pull = GPIO_NOPULL;
393 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
394 GPIO_InitStruct.Alternate = GPIO_AF9_CAN1;
395 HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
398 HAL_NVIC_SetPriority(CAN1_RX0_IRQn, 5, 0);
399 HAL_NVIC_EnableIRQ(CAN1_RX0_IRQn);
404 else if(hcan->Instance==CAN2)
410 __HAL_RCC_CAN2_CLK_ENABLE();
413 __HAL_RCC_CAN1_CLK_ENABLE();
416 __HAL_RCC_GPIOB_CLK_ENABLE();
421 GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_5;
422 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
423 GPIO_InitStruct.Pull = GPIO_NOPULL;
424 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
425 GPIO_InitStruct.Alternate = GPIO_AF9_CAN2;
426 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
429 HAL_NVIC_SetPriority(CAN2_RX0_IRQn, 5, 0);
430 HAL_NVIC_EnableIRQ(CAN2_RX0_IRQn);
435 else if(hcan->Instance==CAN3)
441 __HAL_RCC_CAN3_CLK_ENABLE();
443 __HAL_RCC_GPIOA_CLK_ENABLE();
448 GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_15;
449 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
450 GPIO_InitStruct.Pull = GPIO_NOPULL;
451 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
452 GPIO_InitStruct.Alternate = GPIO_AF11_CAN3;
453 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
470 if(hcan->Instance==CAN1)
478 __HAL_RCC_CAN1_CLK_DISABLE();
485 HAL_GPIO_DeInit(GPIOD, GPIO_PIN_0|GPIO_PIN_1);
488 HAL_NVIC_DisableIRQ(CAN1_RX0_IRQn);
493 else if(hcan->Instance==CAN2)
499 __HAL_RCC_CAN2_CLK_DISABLE();
502 __HAL_RCC_CAN1_CLK_DISABLE();
509 HAL_GPIO_DeInit(GPIOB, GPIO_PIN_13|GPIO_PIN_5);
512 HAL_NVIC_DisableIRQ(CAN2_RX0_IRQn);
517 else if(hcan->Instance==CAN3)
523 __HAL_RCC_CAN3_CLK_DISABLE();
529 HAL_GPIO_DeInit(GPIOA, GPIO_PIN_8|GPIO_PIN_15);
546 GPIO_InitTypeDef GPIO_InitStruct = {0};
547 if(
hdac->Instance==DAC)
553 __HAL_RCC_DAC_CLK_ENABLE();
555 __HAL_RCC_GPIOA_CLK_ENABLE();
560 GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_5;
561 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
562 GPIO_InitStruct.Pull = GPIO_NOPULL;
563 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
569 hdma_dac1.Init.Direction = DMA_MEMORY_TO_PERIPH;
570 hdma_dac1.Init.PeriphInc = DMA_PINC_DISABLE;
572 hdma_dac1.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD;
573 hdma_dac1.Init.MemDataAlignment = DMA_MDATAALIGN_HALFWORD;
575 hdma_dac1.Init.Priority = DMA_PRIORITY_LOW;
576 hdma_dac1.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
587 hdma_dac2.Init.Direction = DMA_MEMORY_TO_PERIPH;
588 hdma_dac2.Init.PeriphInc = DMA_PINC_DISABLE;
590 hdma_dac2.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD;
591 hdma_dac2.Init.MemDataAlignment = DMA_MDATAALIGN_HALFWORD;
593 hdma_dac2.Init.Priority = DMA_PRIORITY_LOW;
594 hdma_dac2.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
617 if(
hdac->Instance==DAC)
623 __HAL_RCC_DAC_CLK_DISABLE();
629 HAL_GPIO_DeInit(GPIOA, GPIO_PIN_4|GPIO_PIN_5);
632 HAL_DMA_DeInit(
hdac->DMA_Handle1);
633 HAL_DMA_DeInit(
hdac->DMA_Handle2);
649 GPIO_InitTypeDef GPIO_InitStruct = {0};
650 RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
651 if(hi2c->Instance==I2C2)
659 PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_I2C2;
660 PeriphClkInitStruct.I2c2ClockSelection = RCC_I2C2CLKSOURCE_PCLK1;
661 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
666 __HAL_RCC_GPIOF_CLK_ENABLE();
671 GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1;
672 GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
673 GPIO_InitStruct.Pull = GPIO_NOPULL;
674 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
675 GPIO_InitStruct.Alternate = GPIO_AF4_I2C2;
676 HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
679 __HAL_RCC_I2C2_CLK_ENABLE();
684 else if(hi2c->Instance==I2C4)
692 PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_I2C4;
693 PeriphClkInitStruct.I2c4ClockSelection = RCC_I2C4CLKSOURCE_PCLK1;
694 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
699 __HAL_RCC_GPIOF_CLK_ENABLE();
704 GPIO_InitStruct.Pin = GPIO_PIN_14|GPIO_PIN_15;
705 GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
706 GPIO_InitStruct.Pull = GPIO_NOPULL;
707 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
708 GPIO_InitStruct.Alternate = GPIO_AF4_I2C4;
709 HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
712 __HAL_RCC_I2C4_CLK_ENABLE();
728 if(hi2c->Instance==I2C2)
734 __HAL_RCC_I2C2_CLK_DISABLE();
740 HAL_GPIO_DeInit(GPIOF, GPIO_PIN_0);
742 HAL_GPIO_DeInit(GPIOF, GPIO_PIN_1);
748 else if(hi2c->Instance==I2C4)
754 __HAL_RCC_I2C4_CLK_DISABLE();
760 HAL_GPIO_DeInit(GPIOF, GPIO_PIN_14);
762 HAL_GPIO_DeInit(GPIOF, GPIO_PIN_15);
779 GPIO_InitTypeDef GPIO_InitStruct = {0};
780 if(hspi->Instance==SPI4)
786 __HAL_RCC_SPI4_CLK_ENABLE();
788 __HAL_RCC_GPIOE_CLK_ENABLE();
794 GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_5|GPIO_PIN_6;
795 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
796 GPIO_InitStruct.Pull = GPIO_NOPULL;
797 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
798 GPIO_InitStruct.Alternate = GPIO_AF5_SPI4;
799 HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
805 else if(hspi->Instance==SPI6)
811 __HAL_RCC_SPI6_CLK_ENABLE();
813 __HAL_RCC_GPIOG_CLK_ENABLE();
819 GPIO_InitStruct.Pin = GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14;
820 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
821 GPIO_InitStruct.Pull = GPIO_NOPULL;
822 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
823 GPIO_InitStruct.Alternate = GPIO_AF5_SPI6;
824 HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
841 if(hspi->Instance==SPI4)
847 __HAL_RCC_SPI4_CLK_DISABLE();
854 HAL_GPIO_DeInit(GPIOE, GPIO_PIN_2|GPIO_PIN_5|GPIO_PIN_6);
860 else if(hspi->Instance==SPI6)
866 __HAL_RCC_SPI6_CLK_DISABLE();
873 HAL_GPIO_DeInit(GPIOG, GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14);
890 if(htim_base->Instance==TIM1)
896 __HAL_RCC_TIM1_CLK_ENABLE();
901 else if(htim_base->Instance==TIM2)
907 __HAL_RCC_TIM2_CLK_ENABLE();
909 HAL_NVIC_SetPriority(TIM2_IRQn, 5, 0);
910 HAL_NVIC_EnableIRQ(TIM2_IRQn);
926 if(htim_base->Instance==TIM1)
932 __HAL_RCC_TIM1_CLK_DISABLE();
937 else if(htim_base->Instance==TIM2)
943 __HAL_RCC_TIM2_CLK_DISABLE();
946 HAL_NVIC_DisableIRQ(TIM2_IRQn);
962 GPIO_InitTypeDef GPIO_InitStruct = {0};
963 RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
964 if(huart->Instance==USART3)
972 PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USART3;
973 PeriphClkInitStruct.Usart3ClockSelection = RCC_USART3CLKSOURCE_PCLK1;
974 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
980 __HAL_RCC_USART3_CLK_ENABLE();
982 __HAL_RCC_GPIOD_CLK_ENABLE();
988 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
989 GPIO_InitStruct.Pull = GPIO_NOPULL;
990 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
991 GPIO_InitStruct.Alternate = GPIO_AF7_USART3;
992 HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
1009 if(huart->Instance==USART3)
1015 __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