static void prvSetupHardware( void ) { GPIO_InitTypeDef GPIO_InitStruct; /* Configure Flash prefetch and Instruction cache through ART accelerator. */ #if( ART_ACCLERATOR_ENABLE != 0 ) { __HAL_FLASH_ART_ENABLE(); } #endif /* ART_ACCLERATOR_ENABLE */ /* Set Interrupt Group Priority */ HAL_NVIC_SetPriorityGrouping( NVIC_PRIORITYGROUP_4 ); /* Init the low level hardware. */ HAL_MspInit(); /* Configure the System clock to have a frequency of 200 MHz */ prvSystemClockConfig(); /* Enable GPIOB Clock (to be able to program the configuration registers) and configure for LED output. */ __GPIOG_CLK_ENABLE(); __HAL_RCC_GPIOF_CLK_ENABLE(); GPIO_InitStruct.Pin = GPIO_PIN_10; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_PULLUP; GPIO_InitStruct.Speed = GPIO_SPEED_HIGH; HAL_GPIO_Init( GPIOF, &GPIO_InitStruct ); /* MCO2 : Pin PC9 */ HAL_RCC_MCOConfig( RCC_MCO2, RCC_MCO2SOURCE_SYSCLK, RCC_MCODIV_1 ); }
/** Configure pins as * Analog * Input * Output * EVENT_OUT * EXTI */ void MX_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStruct; /* GPIO Ports Clock Enable */ __GPIOE_CLK_ENABLE(); __GPIOF_CLK_ENABLE(); __GPIOH_CLK_ENABLE(); __GPIOC_CLK_ENABLE(); __GPIOA_CLK_ENABLE(); __GPIOG_CLK_ENABLE(); __GPIOB_CLK_ENABLE(); __GPIOD_CLK_ENABLE(); __GPIOC_CLK_ENABLE(); //debug pio: PA10 PA8 GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_8; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_HIGH; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); HAL_GPIO_WritePin(GPIOA,GPIO_PIN_10,GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOA,GPIO_PIN_8,GPIO_PIN_SET); //debug pio: PC8 PC6 GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_8; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_HIGH; HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); HAL_GPIO_WritePin(GPIOC,GPIO_PIN_6,GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOC,GPIO_PIN_8,GPIO_PIN_SET); }
//We always start with all the DIOs as inputs (safest state) void init_dio(void) { GPIO_InitTypeDef GPIO_InitStructure; // Enable GPIO Peripheral clocks __GPIOD_CLK_ENABLE(); __GPIOF_CLK_ENABLE(); __GPIOG_CLK_ENABLE(); // Configure pins as inputs GPIO_InitStructure.Pin = GPIO_PIN_8 | GPIO_PIN_9; GPIO_InitStructure.Mode = GPIO_MODE_INPUT; GPIO_InitStructure.Speed = GPIO_SPEED_LOW; GPIO_InitStructure.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOD, &GPIO_InitStructure); GPIO_InitStructure.Pin = GPIO_PIN_0 | GPIO_PIN_1; GPIO_InitStructure.Mode = GPIO_MODE_INPUT; GPIO_InitStructure.Speed = GPIO_SPEED_LOW; GPIO_InitStructure.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOF, &GPIO_InitStructure); GPIO_InitStructure.Pin = GPIO_PIN_8 | GPIO_PIN_12 | GPIO_PIN_13 | GPIO_PIN_14; GPIO_InitStructure.Mode = GPIO_MODE_INPUT; GPIO_InitStructure.Speed = GPIO_SPEED_LOW; GPIO_InitStructure.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOG, &GPIO_InitStructure); //All inputs: dio_direction = 0b111111111; }
// Reconfigure the HAL tick using a standard timer instead of systick. HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority) { RCC_ClkInitTypeDef RCC_ClkInitStruct; uint32_t PclkFreq; // Get clock configuration // Note: PclkFreq contains here the Latency (not used after) HAL_RCC_GetClockConfig(&RCC_ClkInitStruct, &PclkFreq); // Get TIM5 clock value PclkFreq = HAL_RCC_GetPCLK1Freq(); // Enable timer clock TIM_MST_RCC; // Reset timer TIM_MST_RESET_ON; TIM_MST_RESET_OFF; // Configure time base TimMasterHandle.Instance = TIM_MST; TimMasterHandle.Init.Period = 0xFFFFFFFF; // TIMxCLK = PCLKx when the APB prescaler = 1 else TIMxCLK = 2 * PCLKx if (RCC_ClkInitStruct.APB1CLKDivider == RCC_HCLK_DIV1) TimMasterHandle.Init.Prescaler = (uint16_t)((PclkFreq) / 1000000) - 1; // 1 us tick else TimMasterHandle.Init.Prescaler = (uint16_t)((PclkFreq * 2) / 1000000) - 1; // 1 us tick TimMasterHandle.Init.ClockDivision = 0; TimMasterHandle.Init.CounterMode = TIM_COUNTERMODE_UP; TimMasterHandle.Init.RepetitionCounter = 0; HAL_TIM_OC_Init(&TimMasterHandle); NVIC_SetVector(TIM_MST_IRQ, (uint32_t)timer_irq_handler); NVIC_EnableIRQ(TIM_MST_IRQ); // Channel 1 for mbed timeout HAL_TIM_OC_Start(&TimMasterHandle, TIM_CHANNEL_1); // Channel 2 for HAL tick HAL_TIM_OC_Start(&TimMasterHandle, TIM_CHANNEL_2); PreviousVal = __HAL_TIM_GetCounter(&TimMasterHandle); __HAL_TIM_SetCompare(&TimMasterHandle, TIM_CHANNEL_2, PreviousVal + HAL_TICK_DELAY); __HAL_TIM_ENABLE_IT(&TimMasterHandle, TIM_IT_CC2); #if DEBUG_TICK > 0 __GPIOG_CLK_ENABLE(); GPIO_InitTypeDef GPIO_InitStruct; GPIO_InitStruct.Pin = GPIO_PIN_6; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_PULLUP; GPIO_InitStruct.Speed = GPIO_SPEED_FAST; HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); #endif return HAL_OK; }
/** * @brief Initializes the STM324x9I-EVAL's LCD and LEDs resources. * @param None * @retval None */ static void GPIO_Config(void) { static GPIO_InitTypeDef GPIO_InitStruct; __GPIOC_CLK_ENABLE(); __GPIOA_CLK_ENABLE(); __GPIOE_CLK_ENABLE(); __GPIOG_CLK_ENABLE(); // LED背光控制管脚PC8. /* GPIO_InitStruct.Pin = GPIO_PIN_8; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_PULLUP; GPIO_InitStruct.Speed = GPIO_SPEED_FAST; HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); HAL_GPIO_WritePin(GPIOC,GPIO_PIN_8,GPIO_PIN_SET); */ // 提示音控制脚 GPIO_InitStruct.Pin = GPIO_PIN_7; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_PULLUP; GPIO_InitStruct.Speed = GPIO_SPEED_FAST; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,GPIO_PIN_RESET); // 指示灯:白光 PIN3 黄色光; PIN2 GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_PULLUP; GPIO_InitStruct.Speed = GPIO_SPEED_FAST; HAL_GPIO_Init(GPIOE, &GPIO_InitStruct); HAL_GPIO_WritePin(GPIOE,GPIO_PIN_2,GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOE,GPIO_PIN_3,GPIO_PIN_RESET); GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_PULLUP; GPIO_InitStruct.Speed = GPIO_SPEED_FAST; HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); HAL_GPIO_WritePin(GPIOG,GPIO_PIN_2,GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOG,GPIO_PIN_3,GPIO_PIN_RESET); }
/** Configure pins as * Analog * Input * Output * EVENT_OUT * EXTI */ void MX_GPIO_Init(void) { /* GPIO Ports Clock Enable */ __GPIOF_CLK_ENABLE(); __GPIOA_CLK_ENABLE(); __GPIOE_CLK_ENABLE(); __GPIOB_CLK_ENABLE(); __GPIOD_CLK_ENABLE(); __GPIOC_CLK_ENABLE(); __GPIOG_CLK_ENABLE(); }
void initLED() // Initialization for LEDs { GPIO_InitTypeDef GpioInfo_PortG ; GPIO_InitTypeDef GpioInfo_PortB ; GPIO_InitTypeDef GpioInfo_PortC ; GPIO_InitTypeDef GpioInfo_PortA ; __GPIOG_CLK_ENABLE(); __GPIOC_CLK_ENABLE(); __GPIOB_CLK_ENABLE(); __GPIOA_CLK_ENABLE(); // Init for the Port G GpioInfo_PortG.Mode = GPIO_MODE_OUTPUT_PP ; GpioInfo_PortG.Pin = GPIO_PIN_13 | GPIO_PIN_14; // Enable LED3 and LED4 GpioInfo_PortG.Pull = GPIO_NOPULL ; GpioInfo_PortG.Speed = GPIO_SPEED_HIGH ; // Init for the Port B GpioInfo_PortB.Mode = GPIO_MODE_OUTPUT_PP ; GpioInfo_PortB.Pin = GPIO_PIN_13; // Enable LED5 GpioInfo_PortB.Pull = GPIO_NOPULL ; GpioInfo_PortB.Speed = GPIO_SPEED_HIGH ; // Init for the Port C GpioInfo_PortC.Mode = GPIO_MODE_OUTPUT_PP ; GpioInfo_PortC.Pin = GPIO_PIN_5; // Enable LED6 GpioInfo_PortC.Pull = GPIO_NOPULL ; GpioInfo_PortC.Speed = GPIO_SPEED_HIGH ; // Init for the Port A GpioInfo_PortA.Mode = GPIO_MODE_INPUT; GpioInfo_PortA.Pin = GPIO_PIN_0; // Enable User Push Button GpioInfo_PortA.Pull = GPIO_NOPULL ; GpioInfo_PortA.Speed = GPIO_SPEED_HIGH ; //Init LED on PG13 and PG14 HAL_GPIO_Init(GPIOG,&GpioInfo_PortG); //Init LED on PB13 HAL_GPIO_Init(GPIOB,&GpioInfo_PortB); //Init LED on PC5 HAL_GPIO_Init(GPIOC,&GpioInfo_PortC); //Init Push Button on PA0 HAL_GPIO_Init(GPIOA,&GpioInfo_PortA); }
void MX_GPIO_Init(void) { __GPIOF_CLK_ENABLE(); __GPIOH_CLK_ENABLE(); __GPIOC_CLK_ENABLE(); __GPIOA_CLK_ENABLE(); __GPIOB_CLK_ENABLE(); __GPIOG_CLK_ENABLE(); __GPIOE_CLK_ENABLE(); __GPIOD_CLK_ENABLE(); }
void initLED2(){ GPIO_InitTypeDef GpioInfo; __GPIOG_CLK_ENABLE(); GpioInfo.Mode = GPIO_MODE_OUTPUT_PP; GpioInfo.Pin = GPIO_PIN_14; GpioInfo.Pull = GPIO_NOPULL; GpioInfo.Speed = GPIO_SPEED_HIGH; GpioInfo.Alternate = GPIO_MODE_AF_PP; //Init LED on PG14 HAL_GPIO_Init(GPIOG, &GpioInfo); }
/************************************************************************************************************** * Function Name : bsp_GPIOxClockEnable * Description : Enable specific GPIO Port clock * Input Variable : GPIO Port * Return Variable : None * Author : Bryant * Create Date : Sep-29-2015 * Call : Outside ****************************************************************************************************************/ void bsp_GPIOxClockEnable(GPIO_TypeDef* gpioPort) { if(gpioPort==GPIOA) __GPIOA_CLK_ENABLE(); if(gpioPort==GPIOB) __GPIOB_CLK_ENABLE(); if(gpioPort==GPIOC) __GPIOC_CLK_ENABLE(); if(gpioPort==GPIOD) __GPIOD_CLK_ENABLE(); if(gpioPort==GPIOE) __GPIOE_CLK_ENABLE(); if(gpioPort==GPIOF) __GPIOF_CLK_ENABLE(); if(gpioPort==GPIOG) __GPIOG_CLK_ENABLE(); if(gpioPort==GPIOH) __GPIOH_CLK_ENABLE(); if(gpioPort==GPIOI) __GPIOI_CLK_ENABLE(); if(gpioPort==GPIOJ) __GPIOJ_CLK_ENABLE(); if(gpioPort==GPIOK) __GPIOK_CLK_ENABLE(); }
void mp_hal_gpio_clock_enable(GPIO_TypeDef *gpio) { if (0) { #ifdef __GPIOA_CLK_ENABLE } else if (gpio == GPIOA) { __GPIOA_CLK_ENABLE(); #endif #ifdef __GPIOB_CLK_ENABLE } else if (gpio == GPIOB) { __GPIOB_CLK_ENABLE(); #endif #ifdef __GPIOC_CLK_ENABLE } else if (gpio == GPIOC) { __GPIOC_CLK_ENABLE(); #endif #ifdef __GPIOD_CLK_ENABLE } else if (gpio == GPIOD) { __GPIOD_CLK_ENABLE(); #endif #ifdef __GPIOE_CLK_ENABLE } else if (gpio == GPIOE) { __GPIOE_CLK_ENABLE(); #endif #ifdef __GPIOF_CLK_ENABLE } else if (gpio == GPIOF) { __GPIOF_CLK_ENABLE(); #endif #ifdef __GPIOG_CLK_ENABLE } else if (gpio == GPIOG) { __GPIOG_CLK_ENABLE(); #endif #ifdef __GPIOH_CLK_ENABLE } else if (gpio == GPIOH) { __GPIOH_CLK_ENABLE(); #endif #ifdef __GPIOI_CLK_ENABLE } else if (gpio == GPIOI) { __GPIOI_CLK_ENABLE(); #endif #ifdef __GPIOJ_CLK_ENABLE } else if (gpio == GPIOJ) { __GPIOJ_CLK_ENABLE(); #endif #ifdef __GPIOK_CLK_ENABLE } else if (gpio == GPIOK) { __GPIOK_CLK_ENABLE(); #endif } }
F7GPIO::F7GPIO(GPIO_TypeDef* GPIOx,uint32_t GPIO_Pin) { __GPIOE_CLK_ENABLE(); __GPIOG_CLK_ENABLE(); __GPIOB_CLK_ENABLE(); __GPIOD_CLK_ENABLE(); __GPIOC_CLK_ENABLE(); __GPIOA_CLK_ENABLE(); __GPIOJ_CLK_ENABLE(); __GPIOI_CLK_ENABLE(); __GPIOK_CLK_ENABLE(); __GPIOF_CLK_ENABLE(); __GPIOH_CLK_ENABLE(); this->GPIOx = GPIOx; this->GPIO_Pin = GPIO_Pin; }
//Initialize LEDs on PORTG void initLED(int pin){ GPIO_InitTypeDef GPioInfo; __GPIOG_CLK_ENABLE(); GPioInfo.Mode = GPIO_MODE_OUTPUT_PP; GPioInfo.Pin = pin; GPioInfo.Pull = GPIO_NOPULL; GPioInfo.Speed = GPIO_SPEED_HIGH; GPioInfo.Alternate = GPIO_MODE_AF_PP; //Init LED on PG13 HAL_GPIO_Init(GPIOG, &GPioInfo); }
/** * @brief Configures EXTI Line15 (connected to PG15 pin) in interrupt mode * @param None * @retval None */ static void EXTILine15_10_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; /* Enable GPIOG clock */ __GPIOG_CLK_ENABLE(); /* Configure PG15 pin as input floating */ GPIO_InitStructure.Mode = GPIO_MODE_IT_FALLING; GPIO_InitStructure.Pull = GPIO_NOPULL; GPIO_InitStructure.Pin = GPIO_PIN_15; HAL_GPIO_Init(GPIOG, &GPIO_InitStructure); /* Enable and set EXTI15_10 Interrupt to the lowest priority */ HAL_NVIC_SetPriority(EXTI15_10_IRQn, 3, 0); HAL_NVIC_EnableIRQ(EXTI15_10_IRQn); }
void vFreeRTOSInitAll() { /* This sample code shows how to use STM32F2xx GPIO HAL API to toggle PG6, PG7, PG10, and PG12 IOs (connected to LED1, LED2, LED3 and LED4 on STM322xG-EVAL board) in an infinite loop. To proceed, 3 steps are required: */ /* STM32F2xx HAL library initialization: - Configure the Flash prefetch, instruction and Data caches - Configure the Systick to generate an interrupt each 1 msec - Set NVIC Group Priority to 4 - Global MSP (MCU Support Package) initialization */ HAL_Init(); /* Configure the system clock */ SystemClock_Config(); /* -1- Enable GPIOG, GPIOC and GPIOI Clock (to be able to program the configuration registers) */ __GPIOG_CLK_ENABLE(); __GPIOC_CLK_ENABLE(); __GPIOI_CLK_ENABLE(); /* -2- Configure PG.6, PG.8, PI.9 and PC.7 IOs in output push-pull mode to drive external LEDs */ GPIO_InitStruct.Pin = (GPIO_PIN_6 | GPIO_PIN_8); GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_PULLUP; GPIO_InitStruct.Speed = GPIO_SPEED_FAST; HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); GPIO_InitStruct.Pin = GPIO_PIN_9; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_PULLUP; GPIO_InitStruct.Speed = GPIO_SPEED_FAST; HAL_GPIO_Init(GPIOI, &GPIO_InitStruct); GPIO_InitStruct.Pin = GPIO_PIN_7; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_PULLUP; GPIO_InitStruct.Speed = GPIO_SPEED_FAST; HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); }
// Enable GPIO clock and return GPIO base address uint32_t Set_GPIO_Clock(uint32_t port_idx) { uint32_t gpio_add = 0; switch (port_idx) { case PortA: gpio_add = GPIOA_BASE; __GPIOA_CLK_ENABLE(); break; case PortB: gpio_add = GPIOB_BASE; __GPIOB_CLK_ENABLE(); break; case PortC: gpio_add = GPIOC_BASE; __GPIOC_CLK_ENABLE(); break; case PortD: gpio_add = GPIOD_BASE; __GPIOD_CLK_ENABLE(); break; case PortE: gpio_add = GPIOE_BASE; __GPIOE_CLK_ENABLE(); break; case PortF: gpio_add = GPIOF_BASE; __GPIOF_CLK_ENABLE(); break; case PortG: gpio_add = GPIOG_BASE; __GPIOG_CLK_ENABLE(); break; case PortH: gpio_add = GPIOH_BASE; __GPIOH_CLK_ENABLE(); break; case PortI: gpio_add = GPIOI_BASE; __GPIOI_CLK_ENABLE(); break; default: error("Pinmap error: wrong port number."); break; } return gpio_add; }
/** Configure pins as * Analog * Input * Output * EVENT_OUT * EXTI */ void MX_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStruct; /* GPIO Ports Clock Enable */ __GPIOH_CLK_ENABLE(); __GPIOA_CLK_ENABLE(); __GPIOG_CLK_ENABLE(); /*Configure GPIO pins : PG13 PG14 */ GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_14; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_LOW; HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); }
void ClockEnable (void) { __GPIOA_CLK_ENABLE(); __GPIOB_CLK_ENABLE(); __GPIOC_CLK_ENABLE(); __GPIOD_CLK_ENABLE(); __GPIOE_CLK_ENABLE(); __GPIOF_CLK_ENABLE(); __GPIOG_CLK_ENABLE(); __GPIOH_CLK_ENABLE(); __ADC1_CLK_ENABLE(); __ADC2_CLK_ENABLE(); __DAC_CLK_ENABLE(); __FSMC_CLK_ENABLE(); __SPI2_CLK_ENABLE(); __DMA2_CLK_ENABLE(); __TIM1_CLK_ENABLE(); __TIM2_CLK_ENABLE(); }
/** * @brief Initializes FSMC_BANK3 MSP. * @param None * @retval None */ static void FSMC_BANK3_MspInit(void) { GPIO_InitTypeDef GPIO_Init_Structure; /* Enable FSMC clock */ __FSMC_CLK_ENABLE(); /* Enable GPIOs clock */ __GPIOD_CLK_ENABLE(); __GPIOE_CLK_ENABLE(); __GPIOF_CLK_ENABLE(); __GPIOG_CLK_ENABLE(); /* Common GPIO configuration */ GPIO_Init_Structure.Mode = GPIO_MODE_AF_PP; GPIO_Init_Structure.Pull = GPIO_PULLUP; GPIO_Init_Structure.Speed = GPIO_SPEED_HIGH; GPIO_Init_Structure.Alternate = GPIO_AF12_FSMC; /* GPIOD configuration */ GPIO_Init_Structure.Pin = GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_8 |\ GPIO_PIN_9 | GPIO_PIN_10 | GPIO_PIN_11 | GPIO_PIN_12 | GPIO_PIN_13 |\ GPIO_PIN_14 | GPIO_PIN_15; HAL_GPIO_Init(GPIOD, &GPIO_Init_Structure); /* GPIOE configuration */ GPIO_Init_Structure.Pin = GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_3| GPIO_PIN_4 | GPIO_PIN_7 |\ GPIO_PIN_8 | GPIO_PIN_9 | GPIO_PIN_10 | GPIO_PIN_11 | GPIO_PIN_12 |\ GPIO_PIN_13 | GPIO_PIN_14 | GPIO_PIN_15; HAL_GPIO_Init(GPIOE, &GPIO_Init_Structure); /* GPIOF configuration */ GPIO_Init_Structure.Pin = GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2| GPIO_PIN_3 | GPIO_PIN_4 |\ GPIO_PIN_5 | GPIO_PIN_12 | GPIO_PIN_13 | GPIO_PIN_14 | GPIO_PIN_15; HAL_GPIO_Init(GPIOF, &GPIO_Init_Structure); /* GPIOG configuration */ GPIO_Init_Structure.Pin = GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2| GPIO_PIN_3 | GPIO_PIN_4 |\ GPIO_PIN_5 | GPIO_PIN_10; HAL_GPIO_Init(GPIOG, &GPIO_Init_Structure); }
void MX_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStruct; /* GPIO Ports Clock Enable */ __GPIOB_CLK_ENABLE(); __GPIOC_CLK_ENABLE(); __GPIOA_CLK_ENABLE(); __GPIOG_CLK_ENABLE(); /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(GPIOG, GPIO_PIN_13|GPIO_PIN_14, GPIO_PIN_RESET); /*Configure GPIO pins : PG13 PG14 */ GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_14; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_HIGH; HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); }
void HAL_MspInit(void) { /* Set the system clock */ SystemClock_Config(); /* Config Systick */ HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0); /* Enable GPIO clocks */ __GPIOA_CLK_ENABLE(); __GPIOB_CLK_ENABLE(); __GPIOC_CLK_ENABLE(); __GPIOD_CLK_ENABLE(); __GPIOE_CLK_ENABLE(); #ifdef OPENMV2 __GPIOF_CLK_ENABLE(); __GPIOG_CLK_ENABLE(); #endif /* Enable DMA clocks */ __DMA2_CLK_ENABLE(); /* Conigure DCMI GPIO */ GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.Pull = GPIO_PULLDOWN; GPIO_InitStructure.Speed = GPIO_SPEED_LOW; GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStructure.Pin = DCMI_RESET_PIN; HAL_GPIO_Init(DCMI_RESET_PORT, &GPIO_InitStructure); GPIO_InitStructure.Pin = DCMI_PWDN_PIN; HAL_GPIO_Init(DCMI_PWDN_PORT, &GPIO_InitStructure); /* Configure SD CD PIN */ GPIO_InitStructure.Pin = SD_CD_PIN; GPIO_InitStructure.Pull = GPIO_NOPULL; GPIO_InitStructure.Speed = GPIO_SPEED_LOW; GPIO_InitStructure.Mode = GPIO_MODE_INPUT; HAL_GPIO_Init(SD_CD_PORT, &GPIO_InitStructure); }
//------------------------------------------------------------------------------------------------------------------------------------------------------ void Hardware_Init(void) { HAL_Init(); SystemClock_Config(); __GPIOA_CLK_ENABLE(); __GPIOB_CLK_ENABLE(); __GPIOC_CLK_ENABLE(); __GPIOD_CLK_ENABLE(); __GPIOE_CLK_ENABLE(); __GPIOF_CLK_ENABLE(); __GPIOG_CLK_ENABLE(); __DMA1_CLK_ENABLE(); // Для DAC1 (бикалка) __TIM7_CLK_ENABLE(); // Для DAC1 (бикалка) __DAC_CLK_ENABLE(); // Для бикалки __PWR_CLK_ENABLE(); __SYSCFG_CLK_ENABLE(); HAL_NVIC_SetPriority(SysTick_IRQn, PRIORITY_SYS_TICK); // Timer ///////////////////////////////////////////////////////////////// //RCC_PCLK1Config(RCC_HCLK_Div1); // Таймер для мс HAL_NVIC_SetPriority(TIM6_DAC_IRQn, PRIORITY_TIMER_TIM6); HAL_NVIC_EnableIRQ(TIM6_DAC_IRQn); Timer_Init(); Panel_Init(); FSMC_Init(); FSMC_SetMode(ModeFSMC_FPGA); FDrive_Init(); }
GPIOPins::GPIOPins(GPIO_TypeDef *peripheral, std::initializer_list<Pin> pins, Mode mode, Pull pull, Speed speed, AlternateFunction alternate /*= AlternateFunction::None*/) { this->peripheral = peripheral; for (const auto &pin : pins) { pins_bitmask |= std::bitset<16>(static_cast<uint16_t>(pin)); } //if (std::find(initialized_peripherals.begin(), initialized_peripherals.end(), peripheral) == initialized_peripherals.end()) { if (peripheral == GPIOA) __GPIOA_CLK_ENABLE(); else if (peripheral == GPIOB) __GPIOB_CLK_ENABLE(); else if (peripheral == GPIOC) __GPIOC_CLK_ENABLE(); else if (peripheral == GPIOD) __GPIOD_CLK_ENABLE(); else if (peripheral == GPIOE) __GPIOE_CLK_ENABLE(); else if (peripheral == GPIOF) __GPIOF_CLK_ENABLE(); else if (peripheral == GPIOG) __GPIOG_CLK_ENABLE(); else if (peripheral == GPIOH) __GPIOH_CLK_ENABLE(); else if (peripheral == GPIOI) __GPIOI_CLK_ENABLE(); //} //initialized_peripherals.push_back(peripheral); auto init_configuration = GPIO_InitTypeDef(); init_configuration.Pin = pins_bitmask.to_ulong(); init_configuration.Mode = static_cast<uint32_t>(mode); init_configuration.Pull = static_cast<uint32_t>(pull); init_configuration.Speed = static_cast<uint32_t>(speed); if (alternate != AlternateFunction::None) init_configuration.Alternate = static_cast<uint8_t>(alternate); HAL_GPIO_Init(peripheral, &init_configuration); }
/** * @brief Configure all GPIO's to AN to reduce the power consumption * @param None * @retval None */ static void GPIO_ConfigAN(void) { GPIO_InitTypeDef GPIO_InitStruct; /* Configure all GPIO as analog to reduce current consumption on non used IOs */ /* Enable GPIOs clock */ __GPIOA_CLK_ENABLE(); __GPIOB_CLK_ENABLE(); __GPIOC_CLK_ENABLE(); __GPIOD_CLK_ENABLE(); __GPIOE_CLK_ENABLE(); __GPIOF_CLK_ENABLE(); __GPIOG_CLK_ENABLE(); __GPIOH_CLK_ENABLE(); __GPIOI_CLK_ENABLE(); GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Pin = GPIO_PIN_All; HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); HAL_GPIO_Init(GPIOE, &GPIO_InitStruct); HAL_GPIO_Init(GPIOF, &GPIO_InitStruct); HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); HAL_GPIO_Init(GPIOH, &GPIO_InitStruct); HAL_GPIO_Init(GPIOI, &GPIO_InitStruct); HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); /* Disable GPIOs clock */ __GPIOA_CLK_DISABLE(); __GPIOB_CLK_DISABLE(); __GPIOC_CLK_DISABLE(); __GPIOD_CLK_DISABLE(); __GPIOE_CLK_DISABLE(); __GPIOF_CLK_DISABLE(); __GPIOG_CLK_DISABLE(); __GPIOH_CLK_DISABLE(); __GPIOI_CLK_DISABLE(); }
/** * hal gpio clk enable * * Enable the port peripheral clock * * @param port_idx */ static void hal_gpio_clk_enable(uint32_t port_idx) { switch (port_idx) { case 0: __GPIOA_CLK_ENABLE(); break; case 1: __GPIOB_CLK_ENABLE(); break; case 2: __GPIOC_CLK_ENABLE(); break; case 3: __GPIOD_CLK_ENABLE(); break; case 4: __GPIOE_CLK_ENABLE(); break; #if defined GPIOF_BASE case 5: __GPIOF_CLK_ENABLE(); break; #endif #if defined GPIOG_BASE case 6: __GPIOG_CLK_ENABLE(); break; #endif #if defined GPIOH_BASE case 7: __GPIOH_CLK_ENABLE(); break; #endif default: assert(0); break; } }
void initLED() { GPIO_InitTypeDef GpioInfo ; __GPIOG_CLK_ENABLE(); __GPIOB_CLK_ENABLE(); __GPIOC_CLK_ENABLE(); GpioInfo.Mode = GPIO_MODE_OUTPUT_PP ; GpioInfo.Pin = GPIO_PIN_13 | GPIO_PIN_14; // Init PG13 and PG14 GpioInfo.Pull = GPIO_NOPULL ; GpioInfo.Speed = GPIO_SPEED_HIGH ; //Init LED on PG13 & PG14 HAL_GPIO_Init(GPIOG,&GpioInfo); GpioInfo.Pin = GPIO_PIN_13; // Init PB13 //Init LED on PB13 HAL_GPIO_Init(GPIOB,&GpioInfo); GpioInfo.Pin = GPIO_PIN_5 ; // Init PC5 //Init LED on PC5 HAL_GPIO_Init(GPIOC,&GpioInfo); }
/** Configure pins as * Analog * Input * Output * EVENT_OUT * EXTI PB5 ------> USB_OTG_HS_ULPI_D7 PB4 ------> S_TIM3_CH1 PA15 ------> S_TIM2_CH1_ETR PA12 ------> USB_OTG_FS_DP PI4 ------> SAI2_MCLK_A PG10 ------> SAI2_SD_B PA11 ------> USB_OTG_FS_DM PI5 ------> SAI2_SCK_A PI7 ------> SAI2_FS_A PI6 ------> SAI2_SD_A PI1 ------> SPI2_SCK PA10 ------> USB_OTG_FS_ID PI0 ------> S_TIM5_CH4 PA8 ------> S_TIM1_CH1 PC7 ------> USART6_RX PH4 ------> USB_OTG_HS_ULPI_NXT PC6 ------> USART6_TX PF7 ------> ADC3_IN5 PF6 ------> ADC3_IN4 PB13 ------> USB_OTG_HS_ULPI_D6 PF10 ------> ADC3_IN8 PF9 ------> ADC3_IN7 PF8 ------> ADC3_IN6 PB12 ------> USB_OTG_HS_ULPI_D5 PC0 ------> USB_OTG_HS_ULPI_STP PC2 ------> USB_OTG_HS_ULPI_DIR PA0/WKUP ------> ADCx_IN0 PH7 ------> I2C3_SCL PA5 ------> USB_OTG_HS_ULPI_CK PB10 ------> USB_OTG_HS_ULPI_D3 PH6 ------> S_TIM12_CH1 PH8 ------> I2C3_SDA PA3 ------> USB_OTG_HS_ULPI_D0 PB1 ------> USB_OTG_HS_ULPI_D2 PB0 ------> USB_OTG_HS_ULPI_D1 PB11 ------> USB_OTG_HS_ULPI_D4 PB14 ------> SPI2_MISO PB15 ------> SPI2_MOSI */ void MX_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStruct; /* GPIO Ports Clock Enable */ __GPIOE_CLK_ENABLE(); __GPIOG_CLK_ENABLE(); __GPIOB_CLK_ENABLE(); __GPIOD_CLK_ENABLE(); __GPIOC_CLK_ENABLE(); __GPIOA_CLK_ENABLE(); __GPIOJ_CLK_ENABLE(); __GPIOI_CLK_ENABLE(); __GPIOK_CLK_ENABLE(); __GPIOF_CLK_ENABLE(); __GPIOH_CLK_ENABLE(); /*Configure GPIO pin : OTG_HS_OverCurrent_Pin */ GPIO_InitStruct.Pin = OTG_HS_OverCurrent_Pin; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(OTG_HS_OverCurrent_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pins : ULPI_D7_Pin ULPI_D6_Pin ULPI_D5_Pin ULPI_D3_Pin ULPI_D2_Pin ULPI_D1_Pin ULPI_D4_Pin */ GPIO_InitStruct.Pin = ULPI_D7_Pin|ULPI_D6_Pin|ULPI_D5_Pin|ULPI_D3_Pin |ULPI_D2_Pin|ULPI_D1_Pin|ULPI_D4_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_HIGH; GPIO_InitStruct.Alternate = GPIO_AF10_OTG_HS; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); /*Configure GPIO pin : ARDUINO_PWM_D3_Pin */ GPIO_InitStruct.Pin = ARDUINO_PWM_D3_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_LOW; GPIO_InitStruct.Alternate = GPIO_AF2_TIM3; HAL_GPIO_Init(ARDUINO_PWM_D3_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pin : ARDUINO_PWM_D9_Pin */ GPIO_InitStruct.Pin = ARDUINO_PWM_D9_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_LOW; GPIO_InitStruct.Alternate = GPIO_AF1_TIM2; HAL_GPIO_Init(ARDUINO_PWM_D9_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pin : OTG_FS_VBUS_Pin */ GPIO_InitStruct.Pin = OTG_FS_VBUS_Pin; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(OTG_FS_VBUS_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pin : Audio_INT_Pin */ GPIO_InitStruct.Pin = Audio_INT_Pin; GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(Audio_INT_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pins : OTG_FS_P_Pin OTG_FS_N_Pin OTG_FS_ID_Pin */ GPIO_InitStruct.Pin = OTG_FS_P_Pin|OTG_FS_N_Pin|OTG_FS_ID_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_HIGH; GPIO_InitStruct.Alternate = GPIO_AF10_OTG_FS; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); /*Configure GPIO pins : SAI2_MCLKA_Pin SAI2_SCKA_Pin SAI2_FSA_Pin SAI2_SDA_Pin */ GPIO_InitStruct.Pin = SAI2_MCLKA_Pin|SAI2_SCKA_Pin|SAI2_FSA_Pin|SAI2_SDA_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_LOW; GPIO_InitStruct.Alternate = GPIO_AF10_SAI2; HAL_GPIO_Init(GPIOI, &GPIO_InitStruct); /*Configure GPIO pin : SAI2_SDB_Pin */ GPIO_InitStruct.Pin = SAI2_SDB_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_LOW; GPIO_InitStruct.Alternate = GPIO_AF10_SAI2; HAL_GPIO_Init(SAI2_SDB_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pin : OTG_FS_PowerSwitchOn_Pin */ GPIO_InitStruct.Pin = OTG_FS_PowerSwitchOn_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_LOW; HAL_GPIO_Init(OTG_FS_PowerSwitchOn_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pins : ARDUINO_D7_Pin ARDUINO_D8_Pin LCD_DISP_Pin */ GPIO_InitStruct.Pin = ARDUINO_D7_Pin|ARDUINO_D8_Pin|LCD_DISP_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_LOW; HAL_GPIO_Init(GPIOI, &GPIO_InitStruct); /*Configure GPIO pin : uSD_Detect_Pin */ GPIO_InitStruct.Pin = uSD_Detect_Pin; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(uSD_Detect_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pin : LCD_BL_CTRL_Pin */ GPIO_InitStruct.Pin = LCD_BL_CTRL_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_LOW; HAL_GPIO_Init(LCD_BL_CTRL_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pin : OTG_FS_OverCurrent_Pin */ GPIO_InitStruct.Pin = OTG_FS_OverCurrent_Pin; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(OTG_FS_OverCurrent_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pins : TP3_Pin NC2_Pin */ GPIO_InitStruct.Pin = TP3_Pin|NC2_Pin; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOH, &GPIO_InitStruct); /*Configure GPIO pin : ARDUINO_SCK_D13_Pin */ GPIO_InitStruct.Pin = ARDUINO_SCK_D13_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_LOW; GPIO_InitStruct.Alternate = GPIO_AF5_SPI2; HAL_GPIO_Init(ARDUINO_SCK_D13_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pin : DCMI_PWR_EN_Pin */ GPIO_InitStruct.Pin = DCMI_PWR_EN_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_LOW; HAL_GPIO_Init(DCMI_PWR_EN_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pin : ARDUINO_PWM_CS_D10_Pin */ GPIO_InitStruct.Pin = ARDUINO_PWM_CS_D10_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_LOW; GPIO_InitStruct.Alternate = GPIO_AF2_TIM5; HAL_GPIO_Init(ARDUINO_PWM_CS_D10_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pin : ARDUINO_PWM_D5_Pin */ GPIO_InitStruct.Pin = ARDUINO_PWM_D5_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_LOW; GPIO_InitStruct.Alternate = GPIO_AF1_TIM1; HAL_GPIO_Init(ARDUINO_PWM_D5_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pin : LCD_INT_Pin */ GPIO_InitStruct.Pin = LCD_INT_Pin; GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(LCD_INT_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pins : ARDUINO_RX_D0_Pin ARDUINO_TX_D1_Pin */ GPIO_InitStruct.Pin = ARDUINO_RX_D0_Pin|ARDUINO_TX_D1_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_HIGH; GPIO_InitStruct.Alternate = GPIO_AF8_USART6; HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); /*Configure GPIO pin : ULPI_NXT_Pin */ GPIO_InitStruct.Pin = ULPI_NXT_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_HIGH; GPIO_InitStruct.Alternate = GPIO_AF10_OTG_HS; HAL_GPIO_Init(ULPI_NXT_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pins : ARDUINO_D4_Pin ARDUINO_D2_Pin EXT_RST_Pin */ GPIO_InitStruct.Pin = ARDUINO_D4_Pin|ARDUINO_D2_Pin|EXT_RST_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_LOW; HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); /*Configure GPIO pins : ARDUINO_A4_Pin ARDUINO_A5_Pin ARDUINO_A1_Pin ARDUINO_A2_Pin ARDUINO_A3_Pin */ GPIO_InitStruct.Pin = ARDUINO_A4_Pin|ARDUINO_A5_Pin|ARDUINO_A1_Pin|ARDUINO_A2_Pin |ARDUINO_A3_Pin; GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOF, &GPIO_InitStruct); /*Configure GPIO pins : ULPI_STP_Pin ULPI_DIR_Pin */ GPIO_InitStruct.Pin = ULPI_STP_Pin|ULPI_DIR_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_HIGH; GPIO_InitStruct.Alternate = GPIO_AF10_OTG_HS; HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); /*Configure GPIO pin : RMII_RXER_Pin */ GPIO_InitStruct.Pin = RMII_RXER_Pin; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(RMII_RXER_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pin : ARDUINO_A0_Pin */ GPIO_InitStruct.Pin = ARDUINO_A0_Pin; GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(ARDUINO_A0_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pins : LCD_SCL_Pin LCD_SDA_Pin */ GPIO_InitStruct.Pin = LCD_SCL_Pin|LCD_SDA_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; GPIO_InitStruct.Pull = GPIO_PULLUP; GPIO_InitStruct.Speed = GPIO_SPEED_HIGH; GPIO_InitStruct.Alternate = GPIO_AF4_I2C3; HAL_GPIO_Init(GPIOH, &GPIO_InitStruct); /*Configure GPIO pins : ULPI_CLK_Pin ULPI_D0_Pin */ GPIO_InitStruct.Pin = ULPI_CLK_Pin|ULPI_D0_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_HIGH; GPIO_InitStruct.Alternate = GPIO_AF10_OTG_HS; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); /*Configure GPIO pin : ARDUINO_PWM_D6_Pin */ GPIO_InitStruct.Pin = ARDUINO_PWM_D6_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_LOW; GPIO_InitStruct.Alternate = GPIO_AF9_TIM12; HAL_GPIO_Init(ARDUINO_PWM_D6_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pins : ARDUINO_MISO_D12_Pin ARDUINO_MOSI_PWM_D11_Pin */ GPIO_InitStruct.Pin = ARDUINO_MISO_D12_Pin|ARDUINO_MOSI_PWM_D11_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_LOW; GPIO_InitStruct.Alternate = GPIO_AF5_SPI2; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); }
/** * @brief Configure the system for power optimization * * @note This API configures the system to be ready for low power mode * - Unused GPIO in Analog mode * - Fast Wakeup * - Verefint disabled in low power mode * - FLASH in low power mode * * @param None * @retval None */ void SystemPower_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; /** * Disable FLASH in SLEEP Mode */ __HAL_FLASH_SLEEP_POWERDOWN_ENABLE(); //SO: TO BE VERIFIED FOR L4 /* Enable Power Clock */ __HAL_RCC_PWR_CLK_ENABLE(); /** * Enable Ultra low power and Fast wakeup as vrefint is not used in that project */ //SO: TO BE VERIFIED FOR L4 (these APIs are not available for L4) //HAL_PWREx_EnableUltraLowPower(); //HAL_PWREx_EnableFastWakeUp(); /* * Select HSI as system clock source after Wake Up from Stop mode */ //__HAL_RCC_WAKEUPSTOP_CLK_CONFIG(RCC_StopWakeUpClock_MSI); //SO: TO BE VERIFIED FOR L4 (why not this?) __HAL_RCC_WAKEUPSTOP_CLK_CONFIG(RCC_StopWakeUpClock_HSI); /* * Disable all GPIOs clock in SLEEP mode */ #if (JTAG_SUPPORTED == 0) __GPIOA_CLK_SLEEP_DISABLE(); #endif __GPIOB_CLK_SLEEP_DISABLE(); __GPIOC_CLK_SLEEP_DISABLE(); __GPIOD_CLK_SLEEP_DISABLE(); __GPIOE_CLK_SLEEP_DISABLE(); //SO: TO BE VERIFIED FOR L4 __GPIOF_CLK_SLEEP_DISABLE(); //SO: TO BE VERIFIED FOR L4 __GPIOG_CLK_SLEEP_DISABLE(); //SO: TO BE VERIFIED FOR L4 __GPIOH_CLK_SLEEP_DISABLE(); /* * Enable GPIOs clock */ __GPIOA_CLK_ENABLE(); __GPIOB_CLK_ENABLE(); __GPIOC_CLK_ENABLE(); __GPIOD_CLK_ENABLE(); __GPIOE_CLK_ENABLE(); //SO: TO BE VERIFIED FOR L4 __GPIOF_CLK_ENABLE(); //SO: TO BE VERIFIED FOR L4 __GPIOG_CLK_ENABLE(); //SO: TO BE VERIFIED FOR L4 __GPIOH_CLK_ENABLE(); /* * Configure all GPIO port pins in Analog mode with no pull */ GPIO_InitStructure.Mode = GPIO_MODE_ANALOG; GPIO_InitStructure.Speed = GPIO_SPEED_HIGH; //SO: TO BE VERIFIED FOR L4 GPIO_InitStructure.Pull = GPIO_NOPULL; GPIO_InitStructure.Pin = GPIO_PIN_All; HAL_GPIO_Init(GPIOB, &GPIO_InitStructure); HAL_GPIO_Init(GPIOC, &GPIO_InitStructure); HAL_GPIO_Init(GPIOD, &GPIO_InitStructure); HAL_GPIO_Init(GPIOE, &GPIO_InitStructure); //SO: TO BE VERIFIED FOR L4 HAL_GPIO_Init(GPIOF, &GPIO_InitStructure); //SO: TO BE VERIFIED FOR L4 HAL_GPIO_Init(GPIOG, &GPIO_InitStructure); //SO: TO BE VERIFIED FOR L4 HAL_GPIO_Init(GPIOH, &GPIO_InitStructure); #if (JTAG_SUPPORTED == 1) GPIO_InitStructure.Pin = (GPIO_PIN_All ^ (GPIO_PIN_13 | GPIO_PIN_14)); #endif HAL_GPIO_Init(GPIOA, &GPIO_InitStructure); /* * Disable GPIOs clock */ __GPIOA_CLK_DISABLE(); __GPIOB_CLK_DISABLE(); __GPIOC_CLK_DISABLE(); __GPIOD_CLK_DISABLE(); __GPIOE_CLK_DISABLE(); //SO: TO BE VERIFIED FOR L4 __GPIOF_CLK_DISABLE(); //SO: TO BE VERIFIED FOR L4 __GPIOG_CLK_DISABLE(); //SO: TO BE VERIFIED FOR L4 __GPIOH_CLK_DISABLE(); return; }
void Hardware_Init() { HAL_Init(); SystemClock_Config(); __GPIOA_CLK_ENABLE(); __GPIOB_CLK_ENABLE(); __GPIOC_CLK_ENABLE(); __GPIOD_CLK_ENABLE(); __GPIOE_CLK_ENABLE(); __GPIOF_CLK_ENABLE(); __GPIOG_CLK_ENABLE(); __DMA1_CLK_ENABLE(); // Для DAC1 (бикалка) __TIM6_CLK_ENABLE(); // Для отсчёта миллисекунд __TIM2_CLK_ENABLE(); // Для тиков __TIM7_CLK_ENABLE(); // Для DAC1 (бикалка) __DAC_CLK_ENABLE(); // Для бикалки __PWR_CLK_ENABLE(); __SYSCFG_CLK_ENABLE(); HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0); // Timer ///////////////////////////////////////////////////////////////// //RCC_PCLK1Config(RCC_HCLK_Div1); // Таймер для мс HAL_NVIC_SetPriority(TIM6_DAC_IRQn, 2, 0); HAL_NVIC_EnableIRQ(TIM6_DAC_IRQn); if (HAL_TIM_Base_Init(&handleTIM6forTimer) != HAL_OK) { HARDWARE_ERROR } if (HAL_TIM_Base_Start_IT(&handleTIM6forTimer) != HAL_OK) { HARDWARE_ERROR } // Таймер для тиков TIM_HandleTypeDef tim2handle = { TIM2, { 0, TIM_COUNTERMODE_UP, 0xffffffff, TIM_CLOCKDIVISION_DIV1 } }; if (HAL_TIM_Base_Init(&tim2handle) != HAL_OK) { HARDWARE_ERROR } if (HAL_TIM_Base_Start(&tim2handle) != HAL_OK) { HARDWARE_ERROR } Sound_Init(); #ifdef SPI_ENABLE Panel_Init(); #endif FSMC_Init(); ADC_Init(); FDrive_Init(); // Analog and DAC programmable SPI //////////////////////////////////////// GPIO_InitTypeDef isGPIOG = { GPIO_PIN_2 | GPIO_PIN_3 | GPIO_PIN_5 | GPIO_PIN_7, // GPIO_PIN_1 - для работы с дисплеем GPIO_MODE_OUTPUT_PP, GPIO_NOPULL, GPIO_SPEED_HIGH, GPIO_AF0_MCO }; HAL_GPIO_Init(GPIOG, &isGPIOG); isGPIOG.Pin = GPIO_PIN_1; isGPIOG.Mode = GPIO_MODE_OUTPUT_PP; isGPIOG.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOG, &isGPIOG); HAL_GPIO_WritePin(GPIOG, GPIO_PIN_1, GPIO_PIN_RESET); // PG1 - когда равен 1, чтение дисплея, в остальных случаях 0 RTC_Init(); }
/** * @brief SDRAM MSP Initialization * This function configures the hardware resources used in this example: * - Peripheral's clock enable * - Peripheral's GPIO Configuration * @param hsdram: SDRAM handle pointer * @retval None */ void HAL_SDRAM_MspInit(SDRAM_HandleTypeDef *hsdram) { GPIO_InitTypeDef GPIO_Init_Structure; /*##-1- Enable peripherals and GPIO Clocks #################################*/ /* Enable GPIO clocks */ __GPIOB_CLK_ENABLE(); __GPIOC_CLK_ENABLE(); __GPIOD_CLK_ENABLE(); __GPIOE_CLK_ENABLE(); __GPIOF_CLK_ENABLE(); __GPIOG_CLK_ENABLE(); /* Enable FMC clock */ __FMC_CLK_ENABLE(); /*##-2- Configure peripheral GPIO ##########################################*/ /*-- GPIOs Configuration -----------------------------------------------------*/ /* +-------------------+--------------------+--------------------+--------------------+ + SDRAM pins assignment + +-------------------+--------------------+--------------------+--------------------+ | PD0 <-> FMC_D2 | PE0 <-> FMC_NBL0 | PF0 <-> FMC_A0 | PG0 <-> FMC_A10 | | PD1 <-> FMC_D3 | PE1 <-> FMC_NBL1 | PF1 <-> FMC_A1 | PG1 <-> FMC_A11 | | PD8 <-> FMC_D13 | PE7 <-> FMC_D4 | PF2 <-> FMC_A2 | PG8 <-> FMC_SDCLK | | PD9 <-> FMC_D14 | PE8 <-> FMC_D5 | PF3 <-> FMC_A3 | PG15 <-> FMC_NCAS | | PD10 <-> FMC_D15 | PE9 <-> FMC_D6 | PF4 <-> FMC_A4 |--------------------+ | PD14 <-> FMC_D0 | PE10 <-> FMC_D7 | PF5 <-> FMC_A5 | | PD15 <-> FMC_D1 | PE11 <-> FMC_D8 | PF11 <-> FMC_NRAS | +-------------------| PE12 <-> FMC_D9 | PF12 <-> FMC_A6 | | PE13 <-> FMC_D10 | PF13 <-> FMC_A7 | | PE14 <-> FMC_D11 | PF14 <-> FMC_A8 | | PE15 <-> FMC_D12 | PF15 <-> FMC_A9 | +-------------------+--------------------+--------------------+ | PB5 <-> FMC_SDCKE1| | PB6 <-> FMC_SDNE1 | | PC0 <-> FMC_SDNWE | +-------------------+ */ /* Common GPIO configuration */ GPIO_Init_Structure.Mode = GPIO_MODE_AF_PP; GPIO_Init_Structure.Speed = GPIO_SPEED_FAST; GPIO_Init_Structure.Pull = GPIO_NOPULL; GPIO_Init_Structure.Alternate = GPIO_AF12_FMC; /* GPIOB configuration */ GPIO_Init_Structure.Pin = GPIO_PIN_5 | GPIO_PIN_6; HAL_GPIO_Init(GPIOB, &GPIO_Init_Structure); /* GPIOC configuration */ GPIO_Init_Structure.Pin = GPIO_PIN_0; HAL_GPIO_Init(GPIOC, &GPIO_Init_Structure); /* GPIOD configuration */ GPIO_Init_Structure.Pin = GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_8 | GPIO_PIN_9 | GPIO_PIN_10 | GPIO_PIN_14 | GPIO_PIN_15; HAL_GPIO_Init(GPIOD, &GPIO_Init_Structure); /* GPIOE configuration */ GPIO_Init_Structure.Pin = GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_7 | GPIO_PIN_8 | GPIO_PIN_9 | GPIO_PIN_10 | GPIO_PIN_11 | GPIO_PIN_12 | GPIO_PIN_13 | GPIO_PIN_14 | GPIO_PIN_15; HAL_GPIO_Init(GPIOE, &GPIO_Init_Structure); /* GPIOF configuration */ GPIO_Init_Structure.Pin = GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3 | GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_11 | GPIO_PIN_12 | GPIO_PIN_13 | GPIO_PIN_14 | GPIO_PIN_15; HAL_GPIO_Init(GPIOF, &GPIO_Init_Structure); /* GPIOG configuration */ GPIO_Init_Structure.Pin = GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_8 | GPIO_PIN_15; HAL_GPIO_Init(GPIOG, &GPIO_Init_Structure); }