11 #include "stm32f4xx_hal.h" 13 ADC_HandleTypeDef hadc1;
16 void MX_ADC1_Init(
void)
18 ADC_ChannelConfTypeDef sConfig;
20 hadc1.Instance = ADC1;
21 hadc1.Init.ClockPrescaler = ADC_CLOCKPRESCALER_PCLK_DIV2;
22 hadc1.Init.Resolution = ADC_RESOLUTION12b;
23 hadc1.Init.ScanConvMode = DISABLE;
24 hadc1.Init.ContinuousConvMode = DISABLE;
25 hadc1.Init.DiscontinuousConvMode = DISABLE;
26 hadc1.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE;
27 hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT;
28 hadc1.Init.NbrOfConversion = 1;
29 hadc1.Init.DMAContinuousRequests = DISABLE;
30 hadc1.Init.EOCSelection = EOC_SINGLE_CONV;
33 sConfig.Channel = ADC_CHANNEL_10;
35 sConfig.SamplingTime = ADC_SAMPLETIME_3CYCLES;
36 HAL_ADC_ConfigChannel(&hadc1, &sConfig);
39 void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
41 GPIO_InitTypeDef GPIO_InitStruct;
42 if(hadc->Instance==ADC1) {
45 GPIO_InitStruct.Pin = GPIO_PIN_0;
46 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
47 GPIO_InitStruct.Pull = GPIO_NOPULL;
48 HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
52 static int adc_register(
struct st_device *dev,
char *param)
59 static int adc_open(
struct st_device *dev)
64 static int adc_close(
struct st_device *dev)
69 static int adc_read(
struct st_device *dev,
void *data,
unsigned int size)
72 unsigned char *dp = data;
75 HAL_ADC_Start(&hadc1);
76 HAL_ADC_PollForConversion(&hadc1, 100);
77 val = HAL_ADC_GetValue(&hadc1);
81 *dp = ((val >> 8) & 0xff);
96 .explan =
"STM32F4 ADC(GPIO PC0)",
97 .register_dev = adc_register,
char name[MAX_DEVNAMELRN]
デバイス名文字列