75 __HAL_RCC_PWR_CLK_ENABLE();
76 __HAL_RCC_SYSCFG_CLK_ENABLE();
93 GPIO_InitTypeDef GPIO_InitStruct = {0};
94 if(hadc->Instance==ADC1)
100 __HAL_RCC_ADC1_CLK_ENABLE();
102 __HAL_RCC_GPIOA_CLK_ENABLE();
111 GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3
112 |GPIO_PIN_4|GPIO_PIN_5;
113 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
114 GPIO_InitStruct.Pull = GPIO_NOPULL;
115 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
121 hdma_adc1.Init.Direction = DMA_PERIPH_TO_MEMORY;
122 hdma_adc1.Init.PeriphInc = DMA_PINC_DISABLE;
124 hdma_adc1.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD;
125 hdma_adc1.Init.MemDataAlignment = DMA_MDATAALIGN_HALFWORD;
127 hdma_adc1.Init.Priority = DMA_PRIORITY_LOW;
128 hdma_adc1.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
134 __HAL_LINKDMA(hadc,DMA_Handle,
hdma_adc1);
140 else if(hadc->Instance==ADC2)
146 __HAL_RCC_ADC2_CLK_ENABLE();
148 __HAL_RCC_GPIOA_CLK_ENABLE();
149 __HAL_RCC_GPIOC_CLK_ENABLE();
150 __HAL_RCC_GPIOB_CLK_ENABLE();
159 GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7;
160 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
161 GPIO_InitStruct.Pull = GPIO_NOPULL;
162 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
164 GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_5;
165 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
166 GPIO_InitStruct.Pull = GPIO_NOPULL;
167 HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
169 GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1;
170 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
171 GPIO_InitStruct.Pull = GPIO_NOPULL;
172 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
178 hdma_adc2.Init.Direction = DMA_PERIPH_TO_MEMORY;
179 hdma_adc2.Init.PeriphInc = DMA_PINC_DISABLE;
181 hdma_adc2.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD;
182 hdma_adc2.Init.MemDataAlignment = DMA_MDATAALIGN_HALFWORD;
184 hdma_adc2.Init.Priority = DMA_PRIORITY_LOW;
185 hdma_adc2.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
191 __HAL_LINKDMA(hadc,DMA_Handle,
hdma_adc2);
197 else if(hadc->Instance==ADC3)
203 __HAL_RCC_ADC3_CLK_ENABLE();
205 __HAL_RCC_GPIOC_CLK_ENABLE();
212 GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3;
213 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
214 GPIO_InitStruct.Pull = GPIO_NOPULL;
215 HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
221 hdma_adc3.Init.Direction = DMA_PERIPH_TO_MEMORY;
222 hdma_adc3.Init.PeriphInc = DMA_PINC_DISABLE;
224 hdma_adc3.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD;
225 hdma_adc3.Init.MemDataAlignment = DMA_MDATAALIGN_HALFWORD;
227 hdma_adc3.Init.Priority = DMA_PRIORITY_LOW;
228 hdma_adc3.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
234 __HAL_LINKDMA(hadc,DMA_Handle,
hdma_adc3);
251 if(hadc->Instance==ADC1)
257 __HAL_RCC_ADC1_CLK_DISABLE();
267 HAL_GPIO_DeInit(GPIOA, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3
268 |GPIO_PIN_4|GPIO_PIN_5);
271 HAL_DMA_DeInit(hadc->DMA_Handle);
276 else if(hadc->Instance==ADC2)
282 __HAL_RCC_ADC2_CLK_DISABLE();
292 HAL_GPIO_DeInit(GPIOA, GPIO_PIN_6|GPIO_PIN_7);
294 HAL_GPIO_DeInit(GPIOC, GPIO_PIN_4|GPIO_PIN_5);
296 HAL_GPIO_DeInit(GPIOB, GPIO_PIN_0|GPIO_PIN_1);
299 HAL_DMA_DeInit(hadc->DMA_Handle);
304 else if(hadc->Instance==ADC3)
310 __HAL_RCC_ADC3_CLK_DISABLE();
318 HAL_GPIO_DeInit(GPIOC, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3);
321 HAL_DMA_DeInit(hadc->DMA_Handle);
339 GPIO_InitTypeDef GPIO_InitStruct = {0};
340 if(hcan->Instance==CAN1)
348 __HAL_RCC_CAN1_CLK_ENABLE();
351 __HAL_RCC_GPIOD_CLK_ENABLE();
356 GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1;
357 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
358 GPIO_InitStruct.Pull = GPIO_NOPULL;
359 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
360 GPIO_InitStruct.Alternate = GPIO_AF9_CAN1;
361 HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
364 HAL_NVIC_SetPriority(CAN1_RX0_IRQn, 0, 0);
365 HAL_NVIC_EnableIRQ(CAN1_RX0_IRQn);
370 else if(hcan->Instance==CAN2)
376 __HAL_RCC_CAN2_CLK_ENABLE();
379 __HAL_RCC_CAN1_CLK_ENABLE();
382 __HAL_RCC_GPIOB_CLK_ENABLE();
387 GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_5;
388 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
389 GPIO_InitStruct.Pull = GPIO_NOPULL;
390 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
391 GPIO_InitStruct.Alternate = GPIO_AF9_CAN2;
392 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
395 HAL_NVIC_SetPriority(CAN2_RX0_IRQn, 0, 0);
396 HAL_NVIC_EnableIRQ(CAN2_RX0_IRQn);
412 if(hcan->Instance==CAN1)
420 __HAL_RCC_CAN1_CLK_DISABLE();
427 HAL_GPIO_DeInit(GPIOD, GPIO_PIN_0|GPIO_PIN_1);
430 HAL_NVIC_DisableIRQ(CAN1_RX0_IRQn);
435 else if(hcan->Instance==CAN2)
441 __HAL_RCC_CAN2_CLK_DISABLE();
444 __HAL_RCC_CAN1_CLK_DISABLE();
451 HAL_GPIO_DeInit(GPIOB, GPIO_PIN_13|GPIO_PIN_5);
454 HAL_NVIC_DisableIRQ(CAN2_RX0_IRQn);
470 GPIO_InitTypeDef GPIO_InitStruct = {0};
471 RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
472 if(hi2c->Instance==I2C1)
480 PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_I2C1;
481 PeriphClkInitStruct.I2c1ClockSelection = RCC_I2C1CLKSOURCE_PCLK1;
482 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
487 __HAL_RCC_GPIOB_CLK_ENABLE();
492 GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9;
493 GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
494 GPIO_InitStruct.Pull = GPIO_NOPULL;
495 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
496 GPIO_InitStruct.Alternate = GPIO_AF4_I2C1;
497 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
500 __HAL_RCC_I2C1_CLK_ENABLE();
505 else if(hi2c->Instance==I2C2)
513 PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_I2C2;
514 PeriphClkInitStruct.I2c2ClockSelection = RCC_I2C2CLKSOURCE_PCLK1;
515 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
520 __HAL_RCC_GPIOF_CLK_ENABLE();
525 GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1;
526 GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
527 GPIO_InitStruct.Pull = GPIO_NOPULL;
528 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
529 GPIO_InitStruct.Alternate = GPIO_AF4_I2C2;
530 HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
533 __HAL_RCC_I2C2_CLK_ENABLE();
538 else if(hi2c->Instance==I2C4)
546 PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_I2C4;
547 PeriphClkInitStruct.I2c4ClockSelection = RCC_I2C4CLKSOURCE_PCLK1;
548 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
553 __HAL_RCC_GPIOF_CLK_ENABLE();
558 GPIO_InitStruct.Pin = GPIO_PIN_14|GPIO_PIN_15;
559 GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
560 GPIO_InitStruct.Pull = GPIO_NOPULL;
561 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
562 GPIO_InitStruct.Alternate = GPIO_AF4_I2C4;
563 HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
566 __HAL_RCC_I2C4_CLK_ENABLE();
582 if(hi2c->Instance==I2C1)
588 __HAL_RCC_I2C1_CLK_DISABLE();
594 HAL_GPIO_DeInit(GPIOB, GPIO_PIN_8);
596 HAL_GPIO_DeInit(GPIOB, GPIO_PIN_9);
602 else if(hi2c->Instance==I2C2)
608 __HAL_RCC_I2C2_CLK_DISABLE();
614 HAL_GPIO_DeInit(GPIOF, GPIO_PIN_0);
616 HAL_GPIO_DeInit(GPIOF, GPIO_PIN_1);
622 else if(hi2c->Instance==I2C4)
628 __HAL_RCC_I2C4_CLK_DISABLE();
634 HAL_GPIO_DeInit(GPIOF, GPIO_PIN_14);
636 HAL_GPIO_DeInit(GPIOF, GPIO_PIN_15);
653 GPIO_InitTypeDef GPIO_InitStruct = {0};
654 if(hspi->Instance==SPI3)
660 __HAL_RCC_SPI3_CLK_ENABLE();
662 __HAL_RCC_GPIOB_CLK_ENABLE();
663 __HAL_RCC_GPIOC_CLK_ENABLE();
669 GPIO_InitStruct.Pin = GPIO_PIN_2;
670 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
671 GPIO_InitStruct.Pull = GPIO_NOPULL;
672 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
673 GPIO_InitStruct.Alternate = GPIO_AF7_SPI3;
674 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
676 GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_11;
677 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
678 GPIO_InitStruct.Pull = GPIO_NOPULL;
679 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
680 GPIO_InitStruct.Alternate = GPIO_AF6_SPI3;
681 HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
687 else if(hspi->Instance==SPI4)
693 __HAL_RCC_SPI4_CLK_ENABLE();
695 __HAL_RCC_GPIOE_CLK_ENABLE();
701 GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_5|GPIO_PIN_6;
702 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
703 GPIO_InitStruct.Pull = GPIO_NOPULL;
704 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
705 GPIO_InitStruct.Alternate = GPIO_AF5_SPI4;
706 HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
712 else if(hspi->Instance==SPI5)
718 __HAL_RCC_SPI5_CLK_ENABLE();
720 __HAL_RCC_GPIOF_CLK_ENABLE();
726 GPIO_InitStruct.Pin = GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9;
727 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
728 GPIO_InitStruct.Pull = GPIO_NOPULL;
729 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
730 GPIO_InitStruct.Alternate = GPIO_AF5_SPI5;
731 HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
748 if(hspi->Instance==SPI3)
754 __HAL_RCC_SPI3_CLK_DISABLE();
761 HAL_GPIO_DeInit(GPIOB, GPIO_PIN_2);
763 HAL_GPIO_DeInit(GPIOC, GPIO_PIN_10|GPIO_PIN_11);
769 else if(hspi->Instance==SPI4)
775 __HAL_RCC_SPI4_CLK_DISABLE();
782 HAL_GPIO_DeInit(GPIOE, GPIO_PIN_2|GPIO_PIN_5|GPIO_PIN_6);
788 else if(hspi->Instance==SPI5)
794 __HAL_RCC_SPI5_CLK_DISABLE();
801 HAL_GPIO_DeInit(GPIOF, GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9);
818 if(htim_base->Instance==TIM1)
824 __HAL_RCC_TIM1_CLK_ENABLE();
840 if(htim_base->Instance==TIM1)
846 __HAL_RCC_TIM1_CLK_DISABLE();
862 GPIO_InitTypeDef GPIO_InitStruct = {0};
863 RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
864 if(huart->Instance==USART3)
872 PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USART3;
873 PeriphClkInitStruct.Usart3ClockSelection = RCC_USART3CLKSOURCE_PCLK1;
874 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
880 __HAL_RCC_USART3_CLK_ENABLE();
882 __HAL_RCC_GPIOD_CLK_ENABLE();
888 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
889 GPIO_InitStruct.Pull = GPIO_NOPULL;
890 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
891 GPIO_InitStruct.Alternate = GPIO_AF7_USART3;
892 HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
909 if(huart->Instance==USART3)
915 __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.
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_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.
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.
DMA_HandleTypeDef hdma_adc2