/** * @brief Initialize ADC MSP. * @retval None */ static void ADCx_MspInit(ADC_HandleTypeDef *hadc) { GPIO_InitTypeDef gpioinitstruct = {0}; RCC_PeriphCLKInitTypeDef RCC_PeriphCLKInitStruct; /*** Configure the GPIOs ***/ /* Enable GPIO clock */ NUCLEO_ADCx_GPIO_CLK_ENABLE(); /* Configure ADC1 Channel8 as analog input */ gpioinitstruct.Pin = NUCLEO_ADCx_GPIO_PIN ; gpioinitstruct.Mode = GPIO_MODE_ANALOG_ADC_CONTROL; gpioinitstruct.Pull = GPIO_NOPULL; gpioinitstruct.Speed = GPIO_SPEED_FREQ_HIGH; HAL_GPIO_Init(NUCLEO_ADCx_GPIO_PORT, &gpioinitstruct); /*** Configure the ADC peripheral ***/ /* Enable ADC clock */ NUCLEO_ADCx_CLK_ENABLE(); /* Configure SYSCLK as source clock for ADC */ RCC_PeriphCLKInitStruct.PeriphClockSelection = RCC_PERIPHCLK_ADC; RCC_PeriphCLKInitStruct.AdcClockSelection = RCC_ADCCLKSOURCE_SYSCLK; HAL_RCCEx_PeriphCLKConfig(&RCC_PeriphCLKInitStruct); }
/** * @brief Initializes ADC MSP. * @param None * @retval None */ static void ADCx_MspInit(ADC_HandleTypeDef *hadc) { GPIO_InitTypeDef GPIO_InitStruct; /*** Configure the GPIOs ***/ /* Enable GPIO clock */ NUCLEO_ADCx_GPIO_CLK_ENABLE(); /* Configure ADC1 Channel8 as analog input */ GPIO_InitStruct.Pin = NUCLEO_ADCx_GPIO_PIN ; GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; HAL_GPIO_Init(NUCLEO_ADCx_GPIO_PORT, &GPIO_InitStruct); /*** Configure the ADC peripheral ***/ /* Enable ADC clock */ NUCLEO_ADCx_CLK_ENABLE(); }
/** * @brief Initializes ADC MSP. * @retval None */ static void ADCx_MspInit(ADC_HandleTypeDef *hadc) { GPIO_InitTypeDef gpioinitstruct = {0}; /*** Configure the GPIOs ***/ /* Enable GPIO clock */ NUCLEO_ADCx_GPIO_CLK_ENABLE(); /* Configure ADC1 Channel8 as analog input */ gpioinitstruct.Pin = NUCLEO_ADCx_GPIO_PIN ; gpioinitstruct.Mode = GPIO_MODE_ANALOG; gpioinitstruct.Pull = GPIO_NOPULL; gpioinitstruct.Speed = GPIO_SPEED_MEDIUM; HAL_GPIO_Init(NUCLEO_ADCx_GPIO_PORT, &gpioinitstruct); /*** Configure the ADC peripheral ***/ /* Enable ADC clock */ NUCLEO_ADCx_CLK_ENABLE(); }
/** * @brief Initializes ADC MSP. * @param None * @retval None */ static void ADCx_MspInit(ADC_HandleTypeDef *hadc) { GPIO_InitTypeDef GPIO_InitStruct; /*** Configure the GPIOs ***/ /* Enable GPIO clock */ NUCLEO_ADCx_GPIO_CLK_ENABLE(); #if defined(STM32F302x8) || defined(STM32F334x8) /* Configure ADC1 Channel11 as analog input */ #elif defined(STM32F303xE) /* Configure ADC3 Channel12 as analog input */ #endif GPIO_InitStruct.Pin = NUCLEO_ADCx_GPIO_PIN ; GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; HAL_GPIO_Init(NUCLEO_ADCx_GPIO_PORT, &GPIO_InitStruct); /*** Configure the ADC peripheral ***/ /* Enable ADC clock */ NUCLEO_ADCx_CLK_ENABLE(); }
/** * @brief Check the availability of adafruit 1.8" TFT shield on top of STM32NUCLEO * board. This is done by reading the state of IO PC.01 pin when using the * ADC1 peripheral or IO PF.03 pin when using ADC3 peripheral (mapped to * JoyStick available on adafruit 1.8" TFT shield). If the state of PC.01 or * PF.03 is high then the adafruit 1.8" TFT shield is available. * @param None * @retval SHIELD_DETECTED: 1.8" TFT shield is available * SHIELD_NOT_DETECTED: 1.8" TFT shield is not available */ static ShieldStatus TFT_ShieldDetect(void) { GPIO_InitTypeDef GPIO_InitStruct; /* Enable GPIO clock */ NUCLEO_ADCx_GPIO_CLK_ENABLE(); GPIO_InitStruct.Pin = NUCLEO_ADCx_GPIO_PIN ; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_PULLDOWN; HAL_GPIO_Init(NUCLEO_ADCx_GPIO_PORT , &GPIO_InitStruct); if(HAL_GPIO_ReadPin(NUCLEO_ADCx_GPIO_PORT , NUCLEO_ADCx_GPIO_PIN) != 0) { return SHIELD_DETECTED; } else { return SHIELD_NOT_DETECTED; } }