本文整理汇总了C++中GPIO_StructInit函数的典型用法代码示例。如果您正苦于以下问题:C++ GPIO_StructInit函数的具体用法?C++ GPIO_StructInit怎么用?C++ GPIO_StructInit使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了GPIO_StructInit函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: f3d_uart_init
void f3d_uart_init(void) {
GPIO_InitTypeDef GPIO_InitStructure;
USART_InitTypeDef USART_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOC, ENABLE);
GPIO_StructInit(&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(GPIOC,&GPIO_InitStructure);
GPIO_StructInit(&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(GPIOC , &GPIO_InitStructure);
GPIO_PinAFConfig(GPIOC,4,GPIO_AF_7);
GPIO_PinAFConfig(GPIOC,5,GPIO_AF_7);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
USART_StructInit(&USART_InitStructure);
USART_InitStructure.USART_BaudRate = 9600;
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
USART_Init(USART1 ,&USART_InitStructure);
USART_Cmd(USART1 , ENABLE);
// Initialize the rx and tx queues
init_queue(&rxbuf);
init_queue(&txbuf);
// Setup the NVIC priority and subpriority
NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x08;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x08;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
// Enable the RX interrupt
USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);
}
示例2: DacInit
void DacInit(void)
{
RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE);
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA1, ENABLE);
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_StructInit(&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(GPIOA, &GPIO_InitStructure);
DAC_InitTypeDef DAC_InitStructure;
DAC_StructInit(&DAC_InitStructure);
DAC_InitStructure.DAC_Trigger = DAC_Trigger_T2_TRGO;
DAC_InitStructure.DAC_WaveGeneration = DAC_WaveGeneration_None;
DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_Enable;
DAC_Init(DAC_Channel_1, &DAC_InitStructure);
DAC_Cmd(DAC_Channel_1, ENABLE);
DAC_SetChannel1Data(DAC_Align_12b_R, DAC_ZERO);
}
示例3: RCC_AHBPeriphClockCmd
// TODO: Verify pins setting needed for RX and TX
inline void STM32_M0_UART::init_gpio(void)
{
GPIO_InitTypeDef GPIO;
// Enable GPIO clock
RCC_AHBPeriphClockCmd(USART_TX_GPIO_CLK | USART_RX_GPIO_CLK, ENABLE);
// Configure USART Tx and Rx as alternate function push-pull
GPIO_StructInit(&GPIO);
//TX
GPIO.GPIO_Pin = USART_TX_PIN;
GPIO.GPIO_Mode = GPIO_Mode_AF;
GPIO.GPIO_Speed = GPIO_Speed_2MHz;
GPIO.GPIO_OType = GPIO_OType_PP;
GPIO.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(USART_TX_GPIO_PORT, &GPIO);
//RX
GPIO.GPIO_Pin = USART_RX_PIN;
GPIO.GPIO_Mode = GPIO_Mode_AF;
GPIO.GPIO_Speed = GPIO_Speed_2MHz;
GPIO.GPIO_OType = GPIO_OType_PP;
GPIO.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(USART_RX_GPIO_PORT, &GPIO);
// Connect USART pins to AF
GPIO_PinAFConfig(USART_TX_GPIO_PORT, USART_TX_SOURCE, USART_TX_AF);
GPIO_PinAFConfig(USART_RX_GPIO_PORT, USART_RX_SOURCE, USART_RX_AF);
}
示例4: BSP_ADC_Init
static void BSP_ADC_Init (void)
{
ADC_InitTypeDef adc_init;
GPIO_InitTypeDef gpio_init;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
GPIO_StructInit(&gpio_init);
gpio_init.GPIO_Pin = GPIO_Pin_0;
gpio_init.GPIO_Mode = GPIO_Mode_AIN;
GPIO_Init(GPIOB, &gpio_init);
adc_init.ADC_Mode = ADC_Mode_Independent;
adc_init.ADC_ScanConvMode = DISABLE;
adc_init.ADC_ContinuousConvMode = ENABLE;
adc_init.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
adc_init.ADC_DataAlign = ADC_DataAlign_Right;
adc_init.ADC_NbrOfChannel = 1;
ADC_Init(ADC1, &adc_init);
ADC_RegularChannelConfig(ADC1, ADC_Channel_8, 1, ADC_SampleTime_13Cycles5);
ADC_Cmd(ADC1, ENABLE);
ADC_SoftwareStartConvCmd(ADC1, ENABLE);
}
示例5: COMP_Config
/**
* @brief Configures COMP1: DAC channel 1 to COMP1 inverting input
* and COMP1 output to TIM2 IC4.
* @param None
* @retval None
*/
void COMP_Config(void)
{
/* Init Structure definition */
COMP_InitTypeDef COMP_InitStructure;
GPIO_InitTypeDef GPIO_InitStructure;
/* GPIOA Peripheral clock enable */
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);
/* Configure PA1: PA1 is used as COMP1 non inveting input */
GPIO_StructInit(&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(GPIOA, &GPIO_InitStructure);
/* COMP Peripheral clock enable */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
/* COMP1 Init: DAC1 output is used COMP1 inverting input */
COMP_StructInit(&COMP_InitStructure);
COMP_InitStructure.COMP_InvertingInput = COMP_InvertingInput_DAC1;
/* Redirect COMP1 output to TIM2 Input capture 4 */
COMP_InitStructure.COMP_Output = COMP_Output_TIM2IC4;
COMP_InitStructure.COMP_Mode = COMP_Mode_HighSpeed;
COMP_InitStructure.COMP_Hysteresis = COMP_Hysteresis_No;
COMP_Init(COMP_Selection_COMP1, &COMP_InitStructure);
/* Enable COMP1 */
COMP_Cmd(COMP_Selection_COMP1, ENABLE);
}
示例6: LEDS_Init
void LEDS_Init(void)
{
GPIO_InitTypeDef gpioE;
//
// Turn on clocks to GPIO E so we can drive the outputs
//
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOE, ENABLE);
//
// Set up default values
//
GPIO_StructInit(&gpioE);
//
// Make pins 8-15 outputs since they are connected to the LEDS
//
gpioE.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13 |GPIO_Pin_14 | GPIO_Pin_15;
gpioE.GPIO_Mode = GPIO_Mode_OUT;
//
// Initialize the hardware
//
GPIO_Init(GPIOE, &gpioE);
return;
}
示例7: GPIO_Configuration
void GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_StructInit(&GPIO_InitStructure); // Set all as default
GPIO_Init(PORTA, &GPIO_InitStructure);
GPIO_Init(PORTB, &GPIO_InitStructure);
GPIO_Init(PORTC, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Pin = LED1_PIN;
GPIO_Init(LED1_PORT, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = LED2_PIN;
GPIO_Init(LED2_PORT, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = WIZ_RESET_PIN;
GPIO_Init(WIZ_RESET_PORT, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = WIZ_PWDN_PIN;
GPIO_Init(WIZ_PWDN_PORT, &GPIO_InitStructure);
//GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; // For IIN Chip EXTI
//GPIO_InitStructure.GPIO_Pin = WIZ_INT_PIN;
//GPIO_Init(WIZ_INT_PORT, &GPIO_InitStructure);
wizpf_led_set(WIZ_LED1, VAL_OFF);
wizpf_led_set(WIZ_LED2, VAL_OFF);
GPIO_SetBits(WIZ_RESET_PORT, WIZ_RESET_PIN);
GPIO_ResetBits(WIZ_PWDN_PORT, WIZ_PWDN_PIN);
// ToDo
}
示例8: TEST_INIT
void TEST_INIT(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_AHB1PeriphClockCmd(LED_GPIO_RCC, ENABLE);
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);
GPIO_StructInit(&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Pin = LED1;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_Init(LED_GPIO, &GPIO_InitStructure);
GPIO_SetBits(LED_GPIO,LED1);
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12|GPIO_Pin_14|GPIO_Pin_15;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_Init(LED_GPIO, &GPIO_InitStructure);
GPIO_SetBits(LED_GPIO,GPIO_Pin_12);
GPIO_SetBits(LED_GPIO,GPIO_Pin_14);
GPIO_SetBits(LED_GPIO,GPIO_Pin_15);
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
}
示例9: USART1_init
void USART1_init(int baudrate) {
GPIO_InitTypeDef GPIO_InitStructure;
USART_InitTypeDef USART_InitStructure;
/*Enable peripheral clock for GPIOA*/
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA,ENABLE);
/*Enable peripheral clock for UART1*/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);
/*GPIOA Configuration PA9 as TX PA10 as RX*/
GPIO_StructInit(&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9|GPIO_Pin_10;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;
GPIO_Init(GPIOA,&GPIO_InitStructure);
/*Connect USART2 pins to AF7*/
//PA9=USART1_TX
//PA10=USART1_RX
GPIO_PinAFConfig(GPIOA,GPIO_PinSource9,GPIO_AF_7);
GPIO_PinAFConfig(GPIOA,GPIO_PinSource10,GPIO_AF_7);
USART_StructInit(&USART_InitStructure);
USART_InitStructure.USART_BaudRate=baudrate;
USART_InitStructure.USART_WordLength=USART_WordLength_8b;
USART_InitStructure.USART_StopBits=USART_StopBits_1;
USART_InitStructure.USART_Parity=USART_Parity_No;
USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode=USART_Mode_Tx|USART_Mode_Rx;
USART_Init(USART1,&USART_InitStructure);
USART_Cmd(USART1,ENABLE);
}
示例10: fdi_i2c_initialize
void fdi_i2c_initialize(void) {
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_StructInit(&GPIO_InitStruct);
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_7 /* SCL */| GPIO_Pin_8 /* SDA */;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStruct.GPIO_OType = GPIO_OType_OD;
GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(GPIOB, &GPIO_InitStruct);
GPIO_PinAFConfig(GPIOB, GPIO_PinSource8 /* SCL */, GPIO_AF_I2C1);
GPIO_PinAFConfig(GPIOB, GPIO_PinSource7 /* SDA */, GPIO_AF_I2C1);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1, ENABLE);
I2C_InitTypeDef I2C_InitStruct;
I2C_StructInit(&I2C_InitStruct);
I2C_InitStruct.I2C_ClockSpeed = 100000;
I2C_InitStruct.I2C_Mode = I2C_Mode_I2C;
I2C_InitStruct.I2C_DutyCycle = I2C_DutyCycle_2;
I2C_InitStruct.I2C_OwnAddress1 = 0x00;
I2C_InitStruct.I2C_Ack = I2C_Ack_Disable;
I2C_InitStruct.I2C_AcknowledgedAddress = I2C_AcknowledgedAddress_7bit;
I2C_Init(I2C1, &I2C_InitStruct);
I2C_Cmd(I2C1, ENABLE);
}
示例11: f3d_i2c1_init
void f3d_i2c1_init() {
GPIO_InitTypeDef GPIO_InitStructure;
I2C_InitTypeDef I2C_InitStructure;
SPI_InitTypeDef SPI_InitStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1,ENABLE); // Enable the clock to the I2C peripheral
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE); // Port B - SDA (7) and SCL (6)
GPIO_StructInit(&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB , &GPIO_InitStructure);
GPIO_PinAFConfig(GPIOB, 6, GPIO_AF_4);
GPIO_PinAFConfig(GPIOB, 7, GPIO_AF_4);
// I2C GPIO Initialization and Alternate Function Selection
I2C_InitStructure.I2C_Mode = I2C_Mode_I2C;
I2C_InitStructure.I2C_AnalogFilter = I2C_AnalogFilter_Enable;
I2C_InitStructure.I2C_DigitalFilter = 0x00;
I2C_InitStructure.I2C_OwnAddress1 = 0x00;
I2C_InitStructure.I2C_Ack = I2C_Ack_Enable;
I2C_InitStructure.I2C_AcknowledgedAddress = I2C_AcknowledgedAddress_7bit;
I2C_InitStructure.I2C_Timing = 0x00902025;
I2C_Init(I2C1, &I2C_InitStructure);
I2C_Cmd(I2C1, ENABLE);
}
示例12: Sensor_Configuration
void Sensor_Configuration(void) {
ADC_CommonInitTypeDef ADC_CommonInitStructure;
GPIO_InitTypeDef GPIO_InitStructure;
SensorGPIO_Configuration();
DMA2_Configuration();
GPIO_StructInit(&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 |
GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ;
GPIO_Init(GPIOA, &GPIO_InitStructure);
ADC_CommonInitStructure.ADC_Mode = ADC_DualMode_RegSimult;
ADC_CommonInitStructure.ADC_Prescaler = ADC_Prescaler_Div2;
ADC_CommonInitStructure.ADC_DMAAccessMode = ADC_DMAAccessMode_1;
ADC_CommonInitStructure.ADC_TwoSamplingDelay = ADC_TwoSamplingDelay_20Cycles;
ADC_CommonInit(&ADC_CommonInitStructure);
ADC1_Config();
ADC2_Config();
ADC_MultiModeDMARequestAfterLastTransferCmd(ENABLE);
ADC_Cmd(ADC1, ENABLE);
ADC_Cmd(ADC2, ENABLE);
ADC_DMACmd(ADC1, ENABLE);
ADC_SoftwareStartConv(ADC1);
}
示例13: GPIO_Configuration
void GPIO_Configuration(void)
{
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_StructInit(&GPIO_InitStructure); // Set all as default
GPIO_Init(PORTA, &GPIO_InitStructure);
GPIO_Init(PORTB, &GPIO_InitStructure);
GPIO_Init(PORTC, &GPIO_InitStructure);
}
#ifdef LED1_PIN
GPIO_INIT_SIMP(GPIO_Mode_Out_PP, LED1_PORT, LED1_PIN);
wizpf_led_set(WIZ_LED1, VAL_OFF);
#endif
#ifdef LED2_PIN
GPIO_INIT_SIMP(GPIO_Mode_Out_PP, LED2_PORT, LED2_PIN);
wizpf_led_set(WIZ_LED2, VAL_OFF);
#endif
#ifdef WIZ_RESET_PIN
GPIO_INIT_SIMP(GPIO_Mode_Out_PP, WIZ_RESET_PORT, WIZ_RESET_PIN);
GPIO_SetBits(WIZ_RESET_PORT, WIZ_RESET_PIN);
#endif
#ifdef WIZ_PWDN_PIN
GPIO_INIT_SIMP(GPIO_Mode_Out_PP, WIZ_PWDN_PORT, WIZ_PWDN_PIN);
GPIO_ResetBits(WIZ_PWDN_PORT, WIZ_PWDN_PIN);
#endif
#ifdef WIZ_INT_PIN
GPIO_INIT_SIMP(GPIO_Mode_IPU, WIZ_INT_PORT, WIZ_INT_PIN); // For IIN Chip EXTI
#endif
// ToDo
}
示例14: TIMER2_CH2_PWM_Init
void TIMER2_CH2_PWM_Init(int prescaler,int autoreload){
//USER LED / PB3 / TIM2_CH2 / AF1
RCC_AHBPeriphClockCmd(RCC_AHBENR_GPIOBEN ,ENABLE);
GPIO_InitTypeDef myGPIO;
GPIO_StructInit(&myGPIO);
myGPIO.GPIO_Pin=GPIO_Pin_3;
myGPIO.GPIO_Mode=GPIO_Mode_AF;
myGPIO.GPIO_Speed=GPIO_Speed_10MHz;
GPIO_Init(GPIOB,&myGPIO);
GPIO_PinAFConfig(GPIOB,GPIO_PinSource3,GPIO_AF_1);
//select the output mode by writing the CCS bits in the CCMRx register
//Timer time base configuration
RCC_APB1PeriphClockCmd(RCC_APB1ENR_TIM2EN,ENABLE);
TIM_TimeBaseInitTypeDef myTimeBase;
TIM_TimeBaseStructInit(&myTimeBase);
myTimeBase.TIM_CounterMode=TIM_CounterMode_Up;
myTimeBase.TIM_Period=autoreload;
myTimeBase.TIM_Prescaler=prescaler;
myTimeBase.TIM_ClockDivision= TIM_CKD_DIV1;
TIM_TimeBaseInit(TIM2,&myTimeBase);
//Timer capture compare configuration
TIM_OCInitTypeDef myTimerOC;
TIM_OCStructInit(&myTimerOC);
myTimerOC.TIM_OCMode=TIM_OCMode_PWM1;
myTimerOC.TIM_OCPolarity=TIM_OCPolarity_High;
myTimerOC.TIM_OutputState=TIM_OutputState_Enable;
myTimerOC.TIM_Pulse=autoreload;//0 Duty cycle at start
TIM_OC2Init(TIM2,&myTimerOC);
TIM_CCxCmd(TIM2,TIM_Channel_2,TIM_CCx_Enable);//enable CCP2
//start Timer
TIM_Cmd(TIM2,ENABLE);//Counter enabled
}
示例15: ADC1_Config
void ADC1_Config(void)
{
ADC_InitTypeDef ADC_InitStructure;
GPIO_InitTypeDef GPIO_InitStructure;
/* Enable GPIO ports B */
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);
/* ADC1 Periph clock enable */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);
/* Configure Pin & Port as input push-pull for ADC channel 1 usage */
GPIO_StructInit(&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_PIN_ADCin1;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
GPIO_Init(GPIO_PORT_ADCin1, &GPIO_InitStructure);
/* Reset ADC to default values */
ADC_DeInit();
/* ADC1 Configuration */
ADC_StructInit(&ADC_InitStructure);
ADC_InitStructure.ADC_ScanConvMode = DISABLE;
ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;
ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None;
ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b;
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
ADC_InitStructure.ADC_NbrOfConversion = 1;
ADC_Init(ADC1, &ADC_InitStructure);
ADC_Cmd(ADC1, ENABLE);
}