| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- #include "hal/adc.h"
- static ADC_HandleTypeDef hadc1;
- void HAL_ADC1_Init(void){
- ADC_InjectionConfTypeDef sConfigInjected = {0};
- ADC_ChannelConfTypeDef sConfig = {0};
-
- hadc1.Instance = ADC1;
- hadc1.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV1;
- hadc1.Init.Resolution = ADC_RESOLUTION_12B;
- hadc1.Init.ScanConvMode = ADC_SCAN_ENABLE;
- hadc1.Init.ContinuousConvMode = DISABLE;
- hadc1.Init.DiscontinuousConvMode = DISABLE;
- hadc1.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE;
- hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START;
- hadc1.Init.DataAlign = ADC_DATAALIGN_LEFT;
- hadc1.Init.NbrOfConversion = 2;
- hadc1.Init.DMAContinuousRequests = DISABLE;
- hadc1.Init.EOCSelection = ADC_EOC_SINGLE_CONV;
- hadc1.Init.LowPowerAutoWait = DISABLE;
- hadc1.Init.Overrun = ADC_OVR_DATA_PRESERVED;
- if (HAL_ADC_Init(&hadc1) != HAL_OK)
- {
- Error_Handler();
- }
- /** Configure Injected Channel
- */
- sConfigInjected.InjectedChannel = ADC_CHANNEL_1;
- sConfigInjected.InjectedRank = ADC_INJECTED_RANK_1;
- sConfigInjected.InjectedSingleDiff = ADC_SINGLE_ENDED;
- sConfigInjected.InjectedNbrOfConversion = 3;
- sConfigInjected.InjectedSamplingTime = ADC_SAMPLETIME_7CYCLES_5;
- sConfigInjected.ExternalTrigInjecConvEdge = ADC_EXTERNALTRIGINJECCONV_EDGE_RISING;
- sConfigInjected.ExternalTrigInjecConv = ADC_EXTERNALTRIGINJECCONV_T1_TRGO;
- sConfigInjected.AutoInjectedConv = DISABLE;
- sConfigInjected.InjectedDiscontinuousConvMode = DISABLE;
- sConfigInjected.QueueInjectedContext = ENABLE;
- sConfigInjected.InjectedOffset = 0;
- sConfigInjected.InjectedOffsetNumber = ADC_OFFSET_NONE;
- if (HAL_ADCEx_InjectedConfigChannel(&hadc1, &sConfigInjected) != HAL_OK)
- {
- Error_Handler();
- }
- /** Configure Injected Channel
- */
- sConfigInjected.InjectedChannel = ADC_CHANNEL_7;
- sConfigInjected.InjectedRank = ADC_INJECTED_RANK_2;
- if (HAL_ADCEx_InjectedConfigChannel(&hadc1, &sConfigInjected) != HAL_OK)
- {
- Error_Handler();
- }
- /** Configure Injected Channel
- */
- sConfigInjected.InjectedChannel = ADC_CHANNEL_6;
- sConfigInjected.InjectedRank = ADC_INJECTED_RANK_3;
- if (HAL_ADCEx_InjectedConfigChannel(&hadc1, &sConfigInjected) != HAL_OK)
- {
- Error_Handler();
- }
- /** Configure Regular Channel
- */
- sConfig.Channel = ADC_CHANNEL_2;
- sConfig.Rank = ADC_REGULAR_RANK_1;
- sConfig.SingleDiff = ADC_SINGLE_ENDED;
- sConfig.SamplingTime = ADC_SAMPLETIME_61CYCLES_5;
- sConfig.OffsetNumber = ADC_OFFSET_NONE;
- sConfig.Offset = 0;
- if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
- {
- Error_Handler();
- }
- /** Configure Regular Channel
- */
- sConfig.Channel = ADC_CHANNEL_8;
- sConfig.Rank = ADC_REGULAR_RANK_2;
- if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
- {
- Error_Handler();
- }
- }
|