1 | SystemClock_Config(void)
|
2 | {
|
3 | RCC_OscInitTypeDef RCC_OscInitStruct;
|
4 | RCC_ClkInitTypeDef RCC_ClkInitStruct;
|
5 |
|
6 | __HAL_RCC_PWR_CLK_ENABLE();
|
7 |
|
8 | __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
|
9 |
|
10 | RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
|
11 | RCC_OscInitStruct.HSIState = RCC_HSI_ON;
|
12 | RCC_OscInitStruct.HSICalibrationValue = 16;
|
13 | RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;
|
14 | if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
|
15 | {
|
16 | Error_Handler();
|
17 | }
|
18 |
|
19 | RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
|
20 | |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
|
21 | RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI;
|
22 | RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
|
23 | RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
|
24 | RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
|
25 | if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK)
|
26 | {
|
27 | Error_Handler();
|
28 | }
|
29 |
|
30 | HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);
|
31 |
|
32 | HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);
|
33 |
|
34 | /* SysTick_IRQn interrupt configuration */
|
35 | HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0);
|
36 | }
|
37 |
|
38 | void ConfigureADC(ADC_HandleTypeDef g_AdcHandle)
|
39 | {
|
40 |
|
41 | GPIO_InitTypeDef gpioInit;
|
42 |
|
43 | __GPIOC_CLK_ENABLE();
|
44 | __ADC1_CLK_ENABLE();
|
45 |
|
46 | gpioInit.Pin = GPIO_PIN_1;
|
47 | gpioInit.Mode = GPIO_MODE_ANALOG;
|
48 | gpioInit.Pull = GPIO_NOPULL;
|
49 | HAL_GPIO_Init(GPIOC, &gpioInit);
|
50 |
|
51 | HAL_NVIC_SetPriority(ADC_IRQn, 0, 0);
|
52 | HAL_NVIC_EnableIRQ(ADC_IRQn);
|
53 |
|
54 | ADC_ChannelConfTypeDef adcChannel;
|
55 |
|
56 | g_AdcHandle.Instance = ADC1;
|
57 |
|
58 | g_AdcHandle.Init.ClockPrescaler = ADC_CLOCKPRESCALER_PCLK_DIV2;
|
59 | g_AdcHandle.Init.Resolution = ADC_RESOLUTION_12B;
|
60 | g_AdcHandle.Init.ScanConvMode = DISABLE;
|
61 | g_AdcHandle.Init.ContinuousConvMode = ENABLE;
|
62 | g_AdcHandle.Init.DiscontinuousConvMode = DISABLE;
|
63 | g_AdcHandle.Init.NbrOfDiscConversion = 0;
|
64 | g_AdcHandle.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE;
|
65 | g_AdcHandle.Init.ExternalTrigConv = ADC_EXTERNALTRIGCONV_T1_CC1;
|
66 | g_AdcHandle.Init.DataAlign = ADC_DATAALIGN_RIGHT;
|
67 | g_AdcHandle.Init.NbrOfConversion = 1;
|
68 | g_AdcHandle.Init.DMAContinuousRequests = ENABLE;
|
69 | g_AdcHandle.Init.EOCSelection = DISABLE;
|
70 |
|
71 | HAL_ADC_Init(&g_AdcHandle);
|
72 |
|
73 | adcChannel.Channel = ADC_CHANNEL_11;
|
74 | adcChannel.Rank = 1;
|
75 | adcChannel.SamplingTime = ADC_SAMPLETIME_480CYCLES;
|
76 | adcChannel.Offset = 0;
|
77 |
|
78 | if (HAL_ADC_ConfigChannel(&g_AdcHandle, &adcChannel) != HAL_OK)
|
79 | {
|
80 | asm("bkpt 255");
|
81 | }
|
82 | }
|