这篇教程C++ HAL_NVIC_EnableIRQ函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中HAL_NVIC_EnableIRQ函数的典型用法代码示例。如果您正苦于以下问题:C++ HAL_NVIC_EnableIRQ函数的具体用法?C++ HAL_NVIC_EnableIRQ怎么用?C++ HAL_NVIC_EnableIRQ使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了HAL_NVIC_EnableIRQ函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: HAL_UART_MspInit/** * @brief UART MSP Initialization * This function configures the hardware resources used in this example: * - Peripheral's clock enable * - Peripheral's GPIO Configuration * - DMA configuration for transmission request by peripheral * - NVIC configuration for DMA interrupt request enable * @param huart: UART handle pointer * @retval None */void HAL_UART_MspInit(UART_HandleTypeDef *huart){ static DMA_HandleTypeDef hdma_tx; static DMA_HandleTypeDef hdma_rx; GPIO_InitTypeDef GPIO_InitStruct; /*##-1- Enable peripherals and GPIO Clocks #################################*/ /* Enable GPIO TX/RX clock */ USARTx_TX_GPIO_CLK_ENABLE(); USARTx_RX_GPIO_CLK_ENABLE(); /* Enable USARTx clock */ USARTx_CLK_ENABLE(); /* Enable DMA clock */ DMAx_CLK_ENABLE(); /*##-2- Configure peripheral GPIO ##########################################*/ /* UART TX GPIO pin configuration */ GPIO_InitStruct.Pin = USARTx_TX_PIN; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_PULLUP; GPIO_InitStruct.Speed = GPIO_SPEED_HIGH; GPIO_InitStruct.Alternate = USARTx_TX_AF; HAL_GPIO_Init(USARTx_TX_GPIO_PORT, &GPIO_InitStruct); /* UART RX GPIO pin configuration */ GPIO_InitStruct.Pin = USARTx_RX_PIN; GPIO_InitStruct.Alternate = USARTx_RX_AF; HAL_GPIO_Init(USARTx_RX_GPIO_PORT, &GPIO_InitStruct); /*##-3- Configure the DMA channels ##########################################*/ /* Configure the DMA handler for Transmission process */ hdma_tx.Instance = USARTx_TX_DMA_STREAM; hdma_tx.Init.Direction = DMA_MEMORY_TO_PERIPH; hdma_tx.Init.PeriphInc = DMA_PINC_DISABLE; hdma_tx.Init.MemInc = DMA_MINC_ENABLE; hdma_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; hdma_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; hdma_tx.Init.Mode = DMA_NORMAL; hdma_tx.Init.Priority = DMA_PRIORITY_LOW; HAL_DMA_Init(&hdma_tx); /* Associate the initialized DMA handle to the UART handle */ __HAL_LINKDMA(huart, hdmatx, hdma_tx); /* Configure the DMA handler for reception process */ hdma_rx.Instance = USARTx_RX_DMA_STREAM; hdma_rx.Init.Direction = DMA_PERIPH_TO_MEMORY; hdma_rx.Init.PeriphInc = DMA_PINC_DISABLE; hdma_rx.Init.MemInc = DMA_MINC_ENABLE; hdma_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; hdma_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; hdma_rx.Init.Mode = DMA_NORMAL; hdma_rx.Init.Priority = DMA_PRIORITY_HIGH; HAL_DMA_Init(&hdma_rx); /* Associate the initialized DMA handle to the the UART handle */ __HAL_LINKDMA(huart, hdmarx, hdma_rx); /*##-4- Configure the NVIC for DMA #########################################*/ /* NVIC configuration for DMA transfer complete interrupt (USARTx_TX) */ HAL_NVIC_SetPriority(USARTx_DMA_TX_IRQn, 0, 1); HAL_NVIC_EnableIRQ(USARTx_DMA_TX_IRQn); /* NVIC configuration for DMA transfer complete interrupt (USARTx_RX) */ HAL_NVIC_SetPriority(USARTx_DMA_RX_IRQn, 0, 0); HAL_NVIC_EnableIRQ(USARTx_DMA_RX_IRQn);}
开发者ID:GreyCardinalRus,项目名称:stm32-cube,代码行数:86,
示例2: HAL_UART_MspInitvoid HAL_UART_MspInit(UART_HandleTypeDef *huart){ GPIO_InitTypeDef GPIO_InitStruct; if( huart == &UartHandle ){ /*##-1- Enable peripherals and GPIO Clocks #################################*/ DMAx_CLK_ENABLE(); /* Enable GPIO TX/RX clock */ USARTx_TX_GPIO_CLK_ENABLE(); USARTx_RX_GPIO_CLK_ENABLE(); /* Enable USART2 clock */ USARTx_CLK_ENABLE(); /* Enable DMA1 clock */ /*##-2- Configure peripheral GPIO ##########################################*/ /* UART TX GPIO pin configuration */ GPIO_InitStruct.Pin = USARTx_TX_PIN; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FAST; GPIO_InitStruct.Alternate = USARTx_TX_AF; HAL_GPIO_Init(USARTx_TX_GPIO_PORT, &GPIO_InitStruct); /* UART RX GPIO pin configuration */ GPIO_InitStruct.Pin = USARTx_RX_PIN; GPIO_InitStruct.Alternate = USARTx_RX_AF; HAL_GPIO_Init(USARTx_RX_GPIO_PORT, &GPIO_InitStruct); /*##-3- Configure the DMA streams ##########################################*/ /* Configure the DMA handler for Transmission process */ hdma_tx.Instance = USARTx_TX_DMA_STREAM; hdma_tx.Init.Channel = USARTx_TX_DMA_CHANNEL; hdma_tx.Init.Direction = DMA_MEMORY_TO_PERIPH; hdma_tx.Init.PeriphInc = DMA_PINC_DISABLE; hdma_tx.Init.MemInc = DMA_MINC_ENABLE; hdma_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; hdma_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; hdma_tx.Init.Mode = DMA_NORMAL; hdma_tx.Init.Priority = DMA_PRIORITY_LOW; hdma_tx.Init.FIFOMode = DMA_FIFOMODE_DISABLE; hdma_tx.Init.FIFOThreshold = DMA_FIFO_THRESHOLD_FULL; hdma_tx.Init.MemBurst = DMA_MBURST_INC4; hdma_tx.Init.PeriphBurst = DMA_PBURST_INC4; HAL_DMA_Init(&hdma_tx); /* Associate the initialized DMA handle to the the UART handle */ __HAL_LINKDMA(huart, hdmatx, hdma_tx); /* Configure the DMA handler for Transmission process */ hdma_rx.Instance = USARTx_RX_DMA_STREAM; hdma_rx.Init.Channel = USARTx_RX_DMA_CHANNEL; hdma_rx.Init.Direction = DMA_PERIPH_TO_MEMORY; hdma_rx.Init.PeriphInc = DMA_PINC_DISABLE; hdma_rx.Init.MemInc = DMA_MINC_ENABLE; hdma_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; hdma_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; hdma_rx.Init.Mode = DMA_CIRCULAR; hdma_rx.Init.Priority = DMA_PRIORITY_HIGH; hdma_rx.Init.FIFOMode = DMA_FIFOMODE_DISABLE; hdma_rx.Init.FIFOThreshold = DMA_FIFO_THRESHOLD_FULL; hdma_rx.Init.MemBurst = DMA_MBURST_INC4; hdma_rx.Init.PeriphBurst = DMA_PBURST_INC4; HAL_DMA_Init(&hdma_rx); /* Associate the initialized DMA handle to the the UART handle */ __HAL_LINKDMA(huart, hdmarx, hdma_rx); /*##-4- Configure the NVIC for DMA #########################################*/ /* NVIC configuration for DMA transfer complete interrupt (USARTx_TX) */ HAL_NVIC_SetPriority(USARTx_DMA_TX_IRQn, 5, 3); HAL_NVIC_EnableIRQ(USARTx_DMA_TX_IRQn); /* NVIC configuration for DMA transfer complete interrupt (USARTx_RX) */ //HAL_NVIC_SetPriority(USARTx_DMA_RX_IRQn, 5, 2); //HAL_NVIC_EnableIRQ(USARTx_DMA_RX_IRQn); /* NVIC configuration for USART TC interrupt */ HAL_NVIC_SetPriority(USARTx_IRQn, 6, 1); HAL_NVIC_EnableIRQ(USARTx_IRQn); }}
开发者ID:ydwzj,项目名称:STM32F4,代码行数:86,
示例3: HAL_CRYP_MspInitvoid HAL_CRYP_MspInit(CRYP_HandleTypeDef *hcryp){ static DMA_HandleTypeDef hdmaIn; static DMA_HandleTypeDef hdmaOut; /*##-1- Enable peripherals Clock ###########################################*/ /* Enable CRYP clock */ __HAL_RCC_CRYP_CLK_ENABLE(); /* Enable DMA2 clocks */ __HAL_RCC_DMA2_CLK_ENABLE(); /*##-2- Configure the DMA streams ##########################################*/ /***************** Configure common DMA In parameters ***********************/ hdmaIn.Init.Channel = DMA_CHANNEL_2; hdmaIn.Init.Direction = DMA_MEMORY_TO_PERIPH; hdmaIn.Init.PeriphInc = DMA_PINC_DISABLE; hdmaIn.Init.MemInc = DMA_MINC_ENABLE; hdmaIn.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD; hdmaIn.Init.MemDataAlignment = DMA_MDATAALIGN_WORD; hdmaIn.Init.Mode = DMA_NORMAL; hdmaIn.Init.Priority = DMA_PRIORITY_HIGH; hdmaIn.Init.FIFOMode = DMA_FIFOMODE_ENABLE; hdmaIn.Init.FIFOThreshold = DMA_FIFO_THRESHOLD_HALFFULL; hdmaIn.Init.MemBurst = DMA_MBURST_SINGLE; hdmaIn.Init.PeriphBurst = DMA_PBURST_SINGLE; hdmaIn.Instance = DMA2_Stream6; /* Associate the DMA handle */ __HAL_LINKDMA(hcryp, hdmain, hdmaIn); /* Configure the DMA Stream */ HAL_DMA_Init(hcryp->hdmain); /* NVIC configuration for DMA Input data interrupt */ HAL_NVIC_SetPriority(DMA2_Stream6_IRQn, 0x0F, 0); HAL_NVIC_EnableIRQ(DMA2_Stream6_IRQn); /***************** Configure common DMA Out parameters **********************/ hdmaOut.Init.Channel = DMA_CHANNEL_2; hdmaOut.Init.Direction = DMA_PERIPH_TO_MEMORY; hdmaOut.Init.PeriphInc = DMA_PINC_DISABLE; hdmaOut.Init.MemInc = DMA_MINC_ENABLE; hdmaOut.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD; hdmaOut.Init.MemDataAlignment = DMA_MDATAALIGN_WORD; hdmaOut.Init.Mode = DMA_NORMAL; hdmaOut.Init.Priority = DMA_PRIORITY_VERY_HIGH; hdmaOut.Init.FIFOMode = DMA_FIFOMODE_ENABLE; hdmaOut.Init.FIFOThreshold = DMA_FIFO_THRESHOLD_HALFFULL; hdmaOut.Init.MemBurst = DMA_MBURST_SINGLE; hdmaOut.Init.PeriphBurst = DMA_PBURST_SINGLE; hdmaOut.Instance = DMA2_Stream5; /* Associate the DMA handle */ __HAL_LINKDMA(hcryp, hdmaout, hdmaOut); /* Configure the DMA Stream */ HAL_DMA_Init(&hdmaOut); /*##-3- Configure the NVIC for DMA #########################################*/ /* NVIC configuration for DMA output data interrupt */ HAL_NVIC_SetPriority(DMA2_Stream5_IRQn, 0x0F, 0); HAL_NVIC_EnableIRQ(DMA2_Stream5_IRQn);}
开发者ID:eemei,项目名称:library-stm32f4,代码行数:63,
示例4: HAL_I2C_MspInit/** * @brief I2C MSP Initialization * This function configures the hardware resources used in this example: * - Peripheral's clock enable * - Peripheral's GPIO Configuration * - DMA configuration for transmission request by peripheral * - NVIC configuration for DMA interrupt request enable * @param hi2c: I2C handle pointer * @retval None */void HAL_I2C_MspInit(I2C_HandleTypeDef *hi2c){ static DMA_HandleTypeDef hdma_tx; static DMA_HandleTypeDef hdma_rx; GPIO_InitTypeDef GPIO_InitStruct; /*##-1- Enable peripherals and GPIO Clocks #################################*/ /* Enable GPIO TX/RX clock */ I2Cx_SCL_GPIO_CLK_ENABLE(); I2Cx_SDA_GPIO_CLK_ENABLE(); /* Enable I2C1 clock */ I2Cx_CLK_ENABLE(); /* Enable DMA2 clock */ DMAx_CLK_ENABLE(); /*##-2- Configure peripheral GPIO ##########################################*/ /* I2C TX GPIO pin configuration */ GPIO_InitStruct.Pin = I2Cx_SCL_PIN; GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; GPIO_InitStruct.Pull = GPIO_PULLUP; GPIO_InitStruct.Speed = GPIO_SPEED_FAST; GPIO_InitStruct.Alternate = I2Cx_SCL_AF; HAL_GPIO_Init(I2Cx_SCL_GPIO_PORT, &GPIO_InitStruct); /* I2C RX GPIO pin configuration */ GPIO_InitStruct.Pin = I2Cx_SDA_PIN; GPIO_InitStruct.Alternate = I2Cx_SDA_AF; HAL_GPIO_Init(I2Cx_SDA_GPIO_PORT, &GPIO_InitStruct); /*##-3- Configure the DMA streams ##########################################*/ /* Configure the DMA handler for Transmission process */ hdma_tx.Instance = I2Cx_TX_DMA_STREAM; hdma_tx.Init.Channel = I2Cx_TX_DMA_CHANNEL; hdma_tx.Init.Direction = DMA_MEMORY_TO_PERIPH; hdma_tx.Init.PeriphInc = DMA_PINC_DISABLE; hdma_tx.Init.MemInc = DMA_MINC_ENABLE; hdma_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; hdma_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; hdma_tx.Init.Mode = DMA_NORMAL; hdma_tx.Init.Priority = DMA_PRIORITY_LOW; hdma_tx.Init.FIFOMode = DMA_FIFOMODE_DISABLE; hdma_tx.Init.FIFOThreshold = DMA_FIFO_THRESHOLD_FULL; hdma_tx.Init.MemBurst = DMA_MBURST_INC4; hdma_tx.Init.PeriphBurst = DMA_PBURST_INC4; HAL_DMA_Init(&hdma_tx); /* Associate the initialized DMA handle to the the I2C handle */ __HAL_LINKDMA(hi2c, hdmatx, hdma_tx); /* Configure the DMA handler for Transmission process */ hdma_rx.Instance = I2Cx_RX_DMA_STREAM; hdma_rx.Init.Channel = I2Cx_RX_DMA_CHANNEL; hdma_rx.Init.Direction = DMA_PERIPH_TO_MEMORY; hdma_rx.Init.PeriphInc = DMA_PINC_DISABLE; hdma_rx.Init.MemInc = DMA_MINC_ENABLE; hdma_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; hdma_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; hdma_rx.Init.Mode = DMA_NORMAL; hdma_rx.Init.Priority = DMA_PRIORITY_HIGH; hdma_rx.Init.FIFOMode = DMA_FIFOMODE_DISABLE; hdma_rx.Init.FIFOThreshold = DMA_FIFO_THRESHOLD_FULL; hdma_rx.Init.MemBurst = DMA_MBURST_INC4; hdma_rx.Init.PeriphBurst = DMA_PBURST_INC4; HAL_DMA_Init(&hdma_rx); /* Associate the initialized DMA handle to the the I2C handle */ __HAL_LINKDMA(hi2c, hdmarx, hdma_rx); /*##-4- Configure the NVIC for DMA #########################################*/ /* NVIC configuration for DMA transfer complete interrupt (I2C1_TX) */ HAL_NVIC_SetPriority(I2Cx_DMA_TX_IRQn, 0, 1); HAL_NVIC_EnableIRQ(I2Cx_DMA_TX_IRQn); /* NVIC configuration for DMA transfer complete interrupt (I2C1_RX) */ HAL_NVIC_SetPriority(I2Cx_DMA_RX_IRQn, 0, 0); HAL_NVIC_EnableIRQ(I2Cx_DMA_RX_IRQn);}
开发者ID:EarnestHein89,项目名称:STM32Cube_FW_F4,代码行数:94,
示例5: HAL_PCD_MspInit/** * @brief Initializes the PCD MSP. * @param hpcd: PCD handle * @retval None */void HAL_PCD_MspInit(PCD_HandleTypeDef *hpcd){ GPIO_InitTypeDef GPIO_InitStruct; /* Enable the GPIOA clock for USB DataLines */ __GPIOA_CLK_ENABLE(); /* Enable the GPIOB clock for USB external Pull-Up */ __GPIOB_CLK_ENABLE(); /* Configure USB DM and DP pins */ GPIO_InitStruct.Pin = (GPIO_PIN_11 | GPIO_PIN_12); GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_HIGH; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); /* Enable USB FS Clock */ __USB_CLK_ENABLE(); /* Enable SYSCFG Clock */ __SYSCFG_CLK_ENABLE();#if defined (USE_USB_INTERRUPT_REMAPPED) /*USB interrupt remapping enable */ __HAL_REMAPINTERRUPT_USB_ENABLE();#endif if(hpcd->Init.low_power_enable == 1) { /* Enable EXTI Line 18 for USB wakeup */ __HAL_USB_EXTI_CLEAR_FLAG(); __HAL_USB_EXTI_SET_RISING_EDGE_TRIGGER(); __HAL_USB_EXTI_ENABLE_IT(); #if defined (USE_USB_INTERRUPT_DEFAULT) /* USB Default Wakeup Interrupt */ HAL_NVIC_EnableIRQ(USBWakeUp_IRQn); /* Enable USB Wake-up interrupt */ HAL_NVIC_SetPriority(USBWakeUp_IRQn, 0, 0); #elif defined (USE_USB_INTERRUPT_REMAPPED) /* USB Remapped Wakeup Interrupt */ HAL_NVIC_EnableIRQ(USBWakeUp_RMP_IRQn); /* Enable USB Wake-up interrupt */ HAL_NVIC_SetPriority(USBWakeUp_RMP_IRQn, 0, 0);#endif } #if defined (USE_USB_INTERRUPT_DEFAULT) /* Set USB Default FS Interrupt priority */ HAL_NVIC_SetPriority(USB_LP_CAN_RX0_IRQn, 0x0F, 0); /* Enable USB FS Interrupt */ HAL_NVIC_EnableIRQ(USB_LP_CAN_RX0_IRQn); #elif defined (USE_USB_INTERRUPT_REMAPPED) /* Set USB Remapped FS Interrupt priority */ HAL_NVIC_SetPriority(USB_LP_IRQn, 0x0F, 0); /* Enable USB FS Interrupt */ HAL_NVIC_EnableIRQ(USB_LP_IRQn); #endif}
开发者ID:afconsult-south,项目名称:dragonfly-fcb,代码行数:73,
示例6: MX_GPIO_Init/** Configure pins as * Analog * Input * Output * EVENT_OUT * EXTI*/void MX_GPIO_Init(void){ GPIO_InitTypeDef GPIO_InitStruct; /* GPIO Ports Clock Enable */ __GPIOC_CLK_ENABLE(); __GPIOA_CLK_ENABLE(); __GPIOB_CLK_ENABLE(); /*Configure GPIO pin : PA1 */ GPIO_InitStruct.Pin = GPIO_PIN_1; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); /*Configure GPIO pins : PA4 PA7 PA8 PA15 */ GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_15; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_LOW; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); /*Configure GPIO pin : PB0 */ GPIO_InitStruct.Pin = GPIO_PIN_0; GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING; GPIO_InitStruct.Pull = GPIO_PULLUP; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); /*Configure GPIO pins : PB1 PB13 */ GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_13; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_LOW; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); /*Configure GPIO pin : PB12 */ GPIO_InitStruct.Pin = GPIO_PIN_12; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_PULLUP; GPIO_InitStruct.Speed = GPIO_SPEED_LOW; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); /*Configure GPIO pins : PB14 PB15 PB7 */ GPIO_InitStruct.Pin = GPIO_PIN_14|GPIO_PIN_15|GPIO_PIN_7; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); /*Configure GPIO pins : PA9 PA10 PA12 */ GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_12; GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING; GPIO_InitStruct.Pull = GPIO_PULLUP; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); /*Configure GPIO pin : PA11 */ GPIO_InitStruct.Pin = GPIO_PIN_11; GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); /*Configure GPIO pin : PB6 */ GPIO_InitStruct.Pin = GPIO_PIN_6; GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING_FALLING; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4|GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_15, GPIO_PIN_RESET); /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_RESET); /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(GPIOB, GPIO_PIN_12|GPIO_PIN_13, GPIO_PIN_SET); /* EXTI interrupt init*/ HAL_NVIC_SetPriority(EXTI0_IRQn, 5, 0); HAL_NVIC_EnableIRQ(EXTI0_IRQn); HAL_NVIC_SetPriority(EXTI9_5_IRQn, 5, 0); HAL_NVIC_EnableIRQ(EXTI9_5_IRQn); HAL_NVIC_SetPriority(EXTI15_10_IRQn, 5, 0); HAL_NVIC_EnableIRQ(EXTI15_10_IRQn);}
开发者ID:hlmpost,项目名称:code_backup,代码行数:94,
示例7: HAL_ADC_MspInit/** * @brief ADC MSP initialization * This function configures the hardware resources used in this example: * - Enable clock of ADC peripheral * - Configure the GPIO associated to the peripheral channels * - Configure the DMA associated to the peripheral * - Configure the NVIC associated to the peripheral interruptions * @param hadc: ADC handle pointer * @retval None */void HAL_ADC_MspInit(ADC_HandleTypeDef *hadc){ GPIO_InitTypeDef GPIO_InitStruct; static DMA_HandleTypeDef DmaHandle; /*##-1- Enable peripherals and GPIO Clocks #################################*/ /* Enable clock of GPIO associated to the peripheral channels */ ADCx_CHANNELa_GPIO_CLK_ENABLE(); /* Enable clock of ADCx peripheral */ ADCx_CLK_ENABLE(); /* Note: In case of usage of ADC dedicated asynchronous clock, with ADC */ /* setting "AdcHandle.Init.ClockPrescaler = ADC_CLOCK_ASYNC", */ /* the clock source has to be enabled using this macro: */ /* __HAL_RCC_ADC12_CONFIG(RCC_ADC12PLLCLK_DIV1); */ /* Enable asynchronous clock source of ADCx */ __HAL_RCC_ADC1_CONFIG(RCC_ADC1PLLCLK_DIV1); /* Enable clock of DMA associated to the peripheral */ ADCx_DMA_CLK_ENABLE(); /*##-2- Configure peripheral GPIO ##########################################*/ /* ADCx Channel GPIO pin configuration */ GPIO_InitStruct.Pin = ADCx_CHANNELa_PIN; GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(ADCx_CHANNELa_GPIO_PORT, &GPIO_InitStruct); /*##-3- Configure the DMA streams ##########################################*/ /* Configure DMA parameters */ DmaHandle.Instance = ADCx_DMA_STREAM; DmaHandle.Init.Direction = DMA_PERIPH_TO_MEMORY; DmaHandle.Init.PeriphInc = DMA_PINC_DISABLE; DmaHandle.Init.MemInc = DMA_MINC_ENABLE; DmaHandle.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD; /* Transfer from ADC by word to match with ADC resolution 10 or 12 bits */ DmaHandle.Init.MemDataAlignment = DMA_MDATAALIGN_HALFWORD; /* Transfer to memory by half-word to match with buffer variable type: half-word */ DmaHandle.Init.Mode = DMA_CIRCULAR; DmaHandle.Init.Priority = DMA_PRIORITY_HIGH; /* Deinitialize & Initialize the DMA for new transfer */ HAL_DMA_DeInit(&DmaHandle); HAL_DMA_Init(&DmaHandle); /* Associate the initialized DMA handle to the ADC handle */ __HAL_LINKDMA(hadc, DMA_Handle, DmaHandle); /*##-4- Configure the NVIC #################################################*/ /* NVIC configuration for DMA interrupt (transfer completion or error) */ /* Priority: high-priority */ HAL_NVIC_SetPriority(ADCx_DMA_IRQn, 1, 0); HAL_NVIC_EnableIRQ(ADCx_DMA_IRQn); /* NVIC configuration for ADC interrupt */ /* Priority: high-priority */ HAL_NVIC_SetPriority(ADCx_IRQn, 0, 0); HAL_NVIC_EnableIRQ(ADCx_IRQn);}
开发者ID:eleciawhite,项目名称:STM32Cube,代码行数:73,
示例8: SD_MspInit/** * @brief Initializes the SD MSP. * @param None * @retval None */static void SD_MspInit(void){ static DMA_HandleTypeDef dmaRxHandle; static DMA_HandleTypeDef dmaTxHandle; GPIO_InitTypeDef GPIO_Init_Structure; SD_HandleTypeDef *hsd = &uSdHandle; /* Enable SDIO clock */ __SDIO_CLK_ENABLE(); /* Enable DMA2 clocks */ __DMAx_TxRx_CLK_ENABLE(); /* Enable GPIOs clock */ __GPIOC_CLK_ENABLE(); __GPIOD_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_SDIO; /* GPIOC configuration */ GPIO_Init_Structure.Pin = GPIO_PIN_8 | GPIO_PIN_9 | GPIO_PIN_10 | GPIO_PIN_11 | GPIO_PIN_12; HAL_GPIO_Init(GPIOC, &GPIO_Init_Structure); /* GPIOD configuration */ GPIO_Init_Structure.Pin = GPIO_PIN_2; HAL_GPIO_Init(GPIOD, &GPIO_Init_Structure); /* NVIC configuration for SDIO interrupts */ HAL_NVIC_SetPriority(SDIO_IRQn, 5, 0); HAL_NVIC_EnableIRQ(SDIO_IRQn); /* Configure DMA Rx parameters */ dmaRxHandle.Init.Channel = SD_DMAx_Rx_CHANNEL; dmaRxHandle.Init.Direction = DMA_PERIPH_TO_MEMORY; dmaRxHandle.Init.PeriphInc = DMA_PINC_DISABLE; dmaRxHandle.Init.MemInc = DMA_MINC_ENABLE; dmaRxHandle.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD; dmaRxHandle.Init.MemDataAlignment = DMA_MDATAALIGN_WORD; dmaRxHandle.Init.Mode = DMA_PFCTRL; dmaRxHandle.Init.Priority = DMA_PRIORITY_VERY_HIGH; dmaRxHandle.Init.FIFOMode = DMA_FIFOMODE_ENABLE; dmaRxHandle.Init.FIFOThreshold = DMA_FIFO_THRESHOLD_FULL; dmaRxHandle.Init.MemBurst = DMA_MBURST_INC4; dmaRxHandle.Init.PeriphBurst = DMA_PBURST_INC4; dmaRxHandle.Instance = SD_DMAx_Rx_STREAM; /* Associate the DMA handle */ __HAL_LINKDMA(hsd, hdmarx, dmaRxHandle); /* Deinitialize the stream for new transfer */ HAL_DMA_DeInit(&dmaRxHandle); /* Configure the DMA stream */ HAL_DMA_Init(&dmaRxHandle); /* Configure DMA Tx parameters */ dmaTxHandle.Init.Channel = SD_DMAx_Tx_CHANNEL; dmaTxHandle.Init.Direction = DMA_MEMORY_TO_PERIPH; dmaTxHandle.Init.PeriphInc = DMA_PINC_DISABLE; dmaTxHandle.Init.MemInc = DMA_MINC_ENABLE; dmaTxHandle.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD; dmaTxHandle.Init.MemDataAlignment = DMA_MDATAALIGN_WORD; dmaTxHandle.Init.Mode = DMA_PFCTRL; dmaTxHandle.Init.Priority = DMA_PRIORITY_VERY_HIGH; dmaTxHandle.Init.FIFOMode = DMA_FIFOMODE_ENABLE; dmaTxHandle.Init.FIFOThreshold = DMA_FIFO_THRESHOLD_FULL; dmaTxHandle.Init.MemBurst = DMA_MBURST_INC4; dmaTxHandle.Init.PeriphBurst = DMA_PBURST_INC4; dmaTxHandle.Instance = SD_DMAx_Tx_STREAM; /* Associate the DMA handle */ __HAL_LINKDMA(hsd, hdmatx, dmaTxHandle); /* Deinitialize the stream for new transfer */ HAL_DMA_DeInit(&dmaTxHandle); /* Configure the DMA stream */ HAL_DMA_Init(&dmaTxHandle); /* NVIC configuration for DMA transfer complete interrupt */ HAL_NVIC_SetPriority(SD_DMAx_Rx_IRQn, 6, 0); HAL_NVIC_EnableIRQ(SD_DMAx_Rx_IRQn); /* NVIC configuration for DMA transfer complete interrupt */ HAL_NVIC_SetPriority(SD_DMAx_Tx_IRQn, 6, 0); HAL_NVIC_EnableIRQ(SD_DMAx_Tx_IRQn);}
开发者ID:ClintHaerinck,项目名称:STM32Cube_FW_F4,代码行数:99,
示例9: SDRAM_MspInit/** * @brief Initializes SDRAM MSP. * @param hsdram: SDRAM handle * @param Params * @retval None */__weak void SDRAM_MspInit(SDRAM_HandleTypeDef *hsdram, void *Params){ static DMA_HandleTypeDef dma_handle; GPIO_InitTypeDef gpio_init_structure; /* Enable FMC clock */ __HAL_RCC_FMC_CLK_ENABLE(); /* Enable chosen DMAx clock */ __DMAx_CLK_ENABLE(); /* Enable GPIOs clock */ __HAL_RCC_GPIOC_CLK_ENABLE(); __HAL_RCC_GPIOD_CLK_ENABLE(); __HAL_RCC_GPIOE_CLK_ENABLE(); __HAL_RCC_GPIOF_CLK_ENABLE(); __HAL_RCC_GPIOG_CLK_ENABLE(); __HAL_RCC_GPIOH_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_FAST; gpio_init_structure.Alternate = GPIO_AF12_FMC; /* GPIOC configuration */ gpio_init_structure.Pin = GPIO_PIN_3; 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); /* GPIOH configuration */ gpio_init_structure.Pin = GPIO_PIN_3 | GPIO_PIN_5; HAL_GPIO_Init(GPIOH, &gpio_init_structure); /* Configure common DMA parameters */ dma_handle.Init.Channel = SDRAM_DMAx_CHANNEL; dma_handle.Init.Direction = DMA_MEMORY_TO_MEMORY; dma_handle.Init.PeriphInc = DMA_PINC_ENABLE; dma_handle.Init.MemInc = DMA_MINC_ENABLE; dma_handle.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD; dma_handle.Init.MemDataAlignment = DMA_MDATAALIGN_WORD; dma_handle.Init.Mode = DMA_NORMAL; dma_handle.Init.Priority = DMA_PRIORITY_HIGH; dma_handle.Init.FIFOMode = DMA_FIFOMODE_DISABLE; dma_handle.Init.FIFOThreshold = DMA_FIFO_THRESHOLD_FULL; dma_handle.Init.MemBurst = DMA_MBURST_SINGLE; dma_handle.Init.PeriphBurst = DMA_PBURST_SINGLE; dma_handle.Instance = SDRAM_DMAx_STREAM; /* Associate the DMA handle */ __HAL_LINKDMA(hsdram, hdma, dma_handle); /* Deinitialize the stream for new transfer */ HAL_DMA_DeInit(&dma_handle); /* Configure the DMA stream */ HAL_DMA_Init(&dma_handle); /* NVIC configuration for DMA transfer complete interrupt */ HAL_NVIC_SetPriority(SDRAM_DMAx_IRQn, 0x0F, 0); HAL_NVIC_EnableIRQ(SDRAM_DMAx_IRQn);}
开发者ID:itxs,项目名称:STM32F7,代码行数:90,
示例10: main//.........这里部分代码省略......... BSP_LED_Off(LED3); /* enable MCU wake-up by UART */ HAL_UARTEx_EnableStopMode(&UartHandle); /* enter stop mode */ HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI); /* ... STOP mode ... */ SystemClock_Config_fromSTOP(); /* at that point, MCU has been awoken: the LED has been turned back on */ /* Wake Up on 4-bit address detection successful */ /* wait for some delay */ HAL_Delay(100); /* Inform other board that wake up is successful */ if (HAL_UART_Transmit(&UartHandle, (uint8_t*)aTxBuffer4, COUNTOF(aTxBuffer4)-1, 5000)!= HAL_OK) { Error_Handler(); } #else /* Configure PA.12 (Arduino D2) as input with External interrupt */ GPIO_InitStruct.Pin = GPIO_PIN_12; GPIO_InitStruct.Pull = GPIO_PULLUP; GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING; /* Enable GPIOA clock */ __HAL_RCC_GPIOA_CLK_ENABLE(); HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); /* Enable and set PA.12 (Arduino D2) EXTI Interrupt to the lowest priority */ NVIC_SetPriority((IRQn_Type)(EXTI4_15_IRQn), 0x03); HAL_NVIC_EnableIRQ((IRQn_Type)(EXTI4_15_IRQn)); /* Wait for the user to set GPIOA to GND before starting the Communication. In the meantime, LED3 is blinking */ while(VirtualUserButtonStatus == 0) { /* Toggle LED3*/ BSP_LED_Toggle(LED3); HAL_Delay(100); } /*##-2- Send the wake-up from stop mode first trigger ######################*/ /* (RXNE flag setting) */ BSP_LED_On(LED3); if(HAL_UART_Transmit(&UartHandle, (uint8_t*)aWakeUpTrigger1, COUNTOF(aWakeUpTrigger1)-1, 5000)!= HAL_OK) { Error_Handler(); } /* Put UART peripheral in reception process to wait for other board wake up confirmation */ if(HAL_UART_Receive(&UartHandle, (uint8_t *)aRxBuffer, COUNTOF(aTxBuffer1)-1, 10000) != HAL_OK) { Error_Handler(); } BSP_LED_Off(LED3); /* Compare the expected and received buffers */ if(Buffercmp((uint8_t*)aTxBuffer1,(uint8_t*)aRxBuffer,COUNTOF(aTxBuffer1)-1)) { Error_Handler(); }
开发者ID:NjordCZ,项目名称:stm32cubef0,代码行数:67,
示例11: HAL_UART_MspInitvoid HAL_UART_MspInit(UART_HandleTypeDef* huart){ GPIO_InitTypeDef GPIO_InitStruct; if(huart->Instance==USART1) { /* USER CODE BEGIN USART1_MspInit 0 */ /* USER CODE END USART1_MspInit 0 */ /* Peripheral clock enable */ __HAL_RCC_USART1_CLK_ENABLE(); /**USART1 GPIO Configuration PA9 ------> USART1_TX PA10 ------> USART1_RX */ GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; // GPIO_InitStruct.Pull = GPIO_PULLUP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; GPIO_InitStruct.Alternate = GPIO_AF7_USART1; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); /* USER CODE BEGIN USART1_MspInit 1 */ HAL_NVIC_SetPriority(USART1_IRQn, 0, 1); HAL_NVIC_EnableIRQ(USART1_IRQn); /* USER CODE END USART1_MspInit 1 */ } else if(huart->Instance==USART2) { /* USER CODE BEGIN USART2_MspInit 0 */ /* USER CODE END USART2_MspInit 0 */ /* Peripheral clock enable */ __HAL_RCC_USART2_CLK_ENABLE(); /**USART2 GPIO Configuration PD5 ------> USART2_TX PD6 ------> USART2_RX */ GPIO_InitStruct.Pin = GPIO_PIN_5|GPIO_PIN_6; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; // GPIO_InitStruct.Pull = GPIO_PULLUP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; GPIO_InitStruct.Alternate = GPIO_AF7_USART2; HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); /* USER CODE BEGIN USART2_MspInit 1 */ HAL_NVIC_SetPriority(USART2_IRQn, 0, 1); HAL_NVIC_EnableIRQ(USART2_IRQn); /* USER CODE END USART2_MspInit 1 */ } else if(huart->Instance==USART3) { /* USER CODE BEGIN USART3_MspInit 0 */ /* USER CODE END USART3_MspInit 0 */ /* Peripheral clock enable */ __HAL_RCC_USART3_CLK_ENABLE(); /**USART3 GPIO Configuration PD8 ------> USART3_TX PD9 ------> USART3_RX */ GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_PULLUP; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; GPIO_InitStruct.Alternate = GPIO_AF7_USART3; HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); /* USER CODE BEGIN USART3_MspInit 1 */ /* USER CODE END USART3_MspInit 1 */ }}
开发者ID:bens-unit01,项目名称:stm32-tests,代码行数:79,
示例12: HAL_PCD_MspInit/** * @brief Initializes the PCD MSP. * @param hpcd: PCD handle * @retval None */void HAL_PCD_MspInit(PCD_HandleTypeDef *hpcd){ GPIO_InitTypeDef GPIO_InitStruct; if(hpcd->Instance == USB_OTG_FS) { /* Configure USB FS GPIOs */ __GPIOA_CLK_ENABLE(); /* Configure DM DP Pins */ GPIO_InitStruct.Pin = (GPIO_PIN_11 | GPIO_PIN_12); 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 VBUS Pin */ GPIO_InitStruct.Pin = GPIO_PIN_9; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); /* Configure ID pin */ GPIO_InitStruct.Pin = GPIO_PIN_10; GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; GPIO_InitStruct.Pull = GPIO_PULLUP; GPIO_InitStruct.Alternate = GPIO_AF10_OTG_FS; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); /* Enable USB FS Clock */ __USB_OTG_FS_CLK_ENABLE(); /* Set USBFS Interrupt priority */ HAL_NVIC_SetPriority(OTG_FS_IRQn, 5, 0); /* Enable USBFS Interrupt */ HAL_NVIC_EnableIRQ(OTG_FS_IRQn); if(hpcd->Init.low_power_enable == 1) { /* Enable EXTI Line 18 for USB wakeup*/ __HAL_USB_FS_EXTI_CLEAR_FLAG(); __HAL_USB_FS_EXTI_SET_RISING_EGDE_TRIGGER(); __HAL_USB_FS_EXTI_ENABLE_IT(); /* Set EXTI Wakeup Interrupt priority*/ HAL_NVIC_SetPriority(OTG_FS_WKUP_IRQn, 0, 0); /* Enable EXTI Interrupt */ HAL_NVIC_EnableIRQ(OTG_FS_WKUP_IRQn); } } else if(hpcd->Instance == USB_OTG_HS) { /* Configure USB FS GPIOs */ __GPIOA_CLK_ENABLE(); __GPIOB_CLK_ENABLE(); __GPIOC_CLK_ENABLE(); __GPIOH_CLK_ENABLE(); __GPIOI_CLK_ENABLE(); /* CLK */ GPIO_InitStruct.Pin = GPIO_PIN_5; 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); /* D0 */ GPIO_InitStruct.Pin = GPIO_PIN_3; 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); /* D1 D2 D3 D4 D5 D6 D7 */ GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_5 |/ GPIO_PIN_10 | GPIO_PIN_11 | GPIO_PIN_12 | GPIO_PIN_13; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Alternate = GPIO_AF10_OTG_HS; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); /* STP */ GPIO_InitStruct.Pin = GPIO_PIN_0; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Alternate = GPIO_AF10_OTG_HS; HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); //.........这里部分代码省略.........
开发者ID:EarnestHein89,项目名称:STM32Cube_FW_F4,代码行数:101,
示例13: MspInit//.........这里部分代码省略......... /* Enable GPIOs clock */ __GPIOB_CLK_ENABLE(); __GPIOC_CLK_ENABLE(); __GPIOD_CLK_ENABLE(); __GPIOE_CLK_ENABLE(); __GPIOF_CLK_ENABLE(); __GPIOG_CLK_ENABLE(); /*-- 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_InitStructure.Mode = GPIO_MODE_AF_PP; GPIO_InitStructure.Speed = GPIO_SPEED_FAST; GPIO_InitStructure.Pull = GPIO_NOPULL; GPIO_InitStructure.Alternate = GPIO_AF12_FMC; /* GPIOB configuration */ GPIO_InitStructure.Pin = GPIO_PIN_5 | GPIO_PIN_6; HAL_GPIO_Init(GPIOB, &GPIO_InitStructure); /* GPIOC configuration */ GPIO_InitStructure.Pin = GPIO_PIN_0; HAL_GPIO_Init(GPIOC, &GPIO_InitStructure); /* GPIOD configuration */ GPIO_InitStructure.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_InitStructure); /* GPIOE configuration */ GPIO_InitStructure.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_InitStructure); /* GPIOF configuration */ GPIO_InitStructure.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_InitStructure); /* GPIOG configuration */ GPIO_InitStructure.Pin = GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_8 | GPIO_PIN_15; HAL_GPIO_Init(GPIOG, &GPIO_InitStructure); /* Configure common DMA parameters */ dmaHandle.Init.Channel = SDRAM_DMAx_CHANNEL; dmaHandle.Init.Direction = DMA_MEMORY_TO_MEMORY; dmaHandle.Init.PeriphInc = DMA_PINC_ENABLE; dmaHandle.Init.MemInc = DMA_MINC_ENABLE; dmaHandle.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD; dmaHandle.Init.MemDataAlignment = DMA_MDATAALIGN_WORD; dmaHandle.Init.Mode = DMA_NORMAL; dmaHandle.Init.Priority = DMA_PRIORITY_HIGH; dmaHandle.Init.FIFOMode = DMA_FIFOMODE_DISABLE; dmaHandle.Init.FIFOThreshold = DMA_FIFO_THRESHOLD_FULL; dmaHandle.Init.MemBurst = DMA_MBURST_SINGLE; dmaHandle.Init.PeriphBurst = DMA_PBURST_SINGLE; dmaHandle.Instance = SDRAM_DMAx_STREAM; /* Associate the DMA handle */ __HAL_LINKDMA(hsdram, hdma, dmaHandle); /* Deinitialize the stream for new transfer */ HAL_DMA_DeInit(&dmaHandle); /* Configure the DMA stream */ HAL_DMA_Init(&dmaHandle); /* NVIC configuration for DMA transfer complete interrupt */ HAL_NVIC_SetPriority(SDRAM_DMAx_IRQn, 0, 0); HAL_NVIC_EnableIRQ(SDRAM_DMAx_IRQn);}
开发者ID:451506709,项目名称:automated_machine,代码行数:101,
示例14: MX_GPIO_Init//.........这里部分代码省略......... |GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_LOW; HAL_GPIO_Init(GPIOE, &GPIO_InitStruct); /*Configure GPIO pin : PtPin */ GPIO_InitStruct.Pin = in_CALL_Pin; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(in_CALL_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pins : PFPin PF13 PFPin */ GPIO_InitStruct.Pin = in_IGN_STM_Pin|GPIO_PIN_13|in_case_open_sw_Pin; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOF, &GPIO_InitStruct); /*Configure GPIO pin : PtPin */ GPIO_InitStruct.Pin = in_1_wire_in_Pin; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(in_1_wire_in_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pin : PtPin */ GPIO_InitStruct.Pin = out_1_Wire_ctrl_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_LOW; HAL_GPIO_Init(out_1_Wire_ctrl_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pins : PB0 PBPin */ GPIO_InitStruct.Pin = GPIO_PIN_0|out_SPI2_NSS_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_LOW; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); /*Configure GPIO pins : PF11 PF12 */ GPIO_InitStruct.Pin = GPIO_PIN_11|GPIO_PIN_12; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_LOW; HAL_GPIO_Init(GPIOF, &GPIO_InitStruct); /*Configure GPIO pins : PG0 PG1 */ GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); /*Configure GPIO pins : PE9 PE11 */ GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_11; GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOE, &GPIO_InitStruct); /*Configure GPIO pin : PB10 */ GPIO_InitStruct.Pin = GPIO_PIN_10; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_HIGH; GPIO_InitStruct.Alternate = GPIO_AF5_SPI2; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); /*Configure GPIO pins : PG2 PGPin */ GPIO_InitStruct.Pin = GPIO_PIN_2|out_UART6_dir_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 pin : PtPin */ GPIO_InitStruct.Pin = out_UART1_dir_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_LOW; HAL_GPIO_Init(out_UART1_dir_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pins : PDPin PDPin */ GPIO_InitStruct.Pin = out_UART5_dir_Pin|out_UART4_dir_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_LOW; HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); /* EXTI interrupt init*/ HAL_NVIC_SetPriority(EXTI9_5_IRQn, 5, 0); HAL_NVIC_EnableIRQ(EXTI9_5_IRQn); HAL_NVIC_SetPriority(EXTI15_10_IRQn, 5, 0); HAL_NVIC_EnableIRQ(EXTI15_10_IRQn);/* USER CODE BEGIN 2 */HAL_GPIO_WritePin(GPIOE, out_CAN1_SD_Pin, GPIO_PIN_RESET);HAL_GPIO_WritePin(GPIOE, out_CAN2_SD_Pin, GPIO_PIN_RESET);/* USER CODE END 2 */}
开发者ID:nowhard,项目名称:STM32F4_GLOSAV,代码行数:101,
示例15: HAL_LTDC_MspInit/** * @brief LTDC MSP Initialization * This function configures the hardware resources used in this example: * - Peripheral's clock enable * - Peripheral's GPIO Configuration * @param hltdc: LTDC handle pointer * @retval None */void HAL_LTDC_MspInit(LTDC_HandleTypeDef *hltdc){ GPIO_InitTypeDef GPIO_Init_Structure; /*##-1- Enable peripherals and GPIO Clocks #################################*/ /* Enable the LTDC Clock */ __HAL_RCC_LTDC_CLK_ENABLE(); /* Enable GPIOs clock */ __HAL_RCC_GPIOA_CLK_ENABLE(); __HAL_RCC_GPIOB_CLK_ENABLE(); __HAL_RCC_GPIOC_CLK_ENABLE(); __HAL_RCC_GPIOD_CLK_ENABLE(); __HAL_RCC_GPIOF_CLK_ENABLE(); __HAL_RCC_GPIOG_CLK_ENABLE(); /*##-2- Configure peripheral GPIO ##########################################*/ /******************** LTDC Pins configuration *************************/ /* +------------------------+-----------------------+----------------------------+ + LCD pins assignment + +------------------------+-----------------------+----------------------------+ | LCD_TFT R2 <-> PC.10 | LCD_TFT G2 <-> PA.06 | LCD_TFT B2 <-> PD.06 | | LCD_TFT R3 <-> PB.00 | LCD_TFT G3 <-> PG.10 | LCD_TFT B3 <-> PG.11 | | LCD_TFT R4 <-> PA.11 | LCD_TFT G4 <-> PB.10 | LCD_TFT B4 <-> PG.12 | | LCD_TFT R5 <-> PA.12 | LCD_TFT G5 <-> PB.11 | LCD_TFT B5 <-> PA.03 | | LCD_TFT R6 <-> PB.01 | LCD_TFT G6 <-> PC.07 | LCD_TFT B6 <-> PB.08 | | LCD_TFT R7 <-> PG.06 | LCD_TFT G7 <-> PD.03 | LCD_TFT B7 <-> PB.09 | ------------------------------------------------------------------------------- | LCD_TFT HSYNC <-> PC.06 | LCDTFT VSYNC <-> PA.04 | | LCD_TFT CLK <-> PG.07 | LCD_TFT DE <-> PF.10 | ----------------------------------------------------- */ /* LTDC pins configuraiton: PA3 -- 12 */ GPIO_Init_Structure.Pin = GPIO_PIN_3 | GPIO_PIN_4 | GPIO_PIN_6 | GPIO_PIN_11 | GPIO_PIN_12; GPIO_Init_Structure.Mode = GPIO_MODE_AF_PP; GPIO_Init_Structure.Pull = GPIO_NOPULL; GPIO_Init_Structure.Speed = GPIO_SPEED_FAST; GPIO_Init_Structure.Alternate= GPIO_AF14_LTDC; HAL_GPIO_Init(GPIOA, &GPIO_Init_Structure); /* LTDC pins configuraiton: PB8 -- 11 */ GPIO_Init_Structure.Pin = GPIO_PIN_8 | / GPIO_PIN_9 | GPIO_PIN_10 | GPIO_PIN_11; HAL_GPIO_Init(GPIOB, &GPIO_Init_Structure); /* LTDC pins configuraiton: PC6 -- 10 */ GPIO_Init_Structure.Pin = GPIO_PIN_6 | GPIO_PIN_7 | GPIO_PIN_10; HAL_GPIO_Init(GPIOC, &GPIO_Init_Structure); /* LTDC pins configuraiton: PD3 -- 6 */ GPIO_Init_Structure.Pin = GPIO_PIN_3 | GPIO_PIN_6; HAL_GPIO_Init(GPIOD, &GPIO_Init_Structure); /* LTDC pins configuraiton: PF10*/ GPIO_Init_Structure.Pin = GPIO_PIN_10; HAL_GPIO_Init(GPIOF, &GPIO_Init_Structure); /* LTDC pins configuraiton: PG6 -- 7 */ GPIO_Init_Structure.Pin = GPIO_PIN_6 | GPIO_PIN_7 | / GPIO_PIN_11; HAL_GPIO_Init(GPIOG, &GPIO_Init_Structure); /* LTDC pins configuraiton: PB1 -- 1 */ GPIO_Init_Structure.Pin = GPIO_PIN_0 | GPIO_PIN_1; GPIO_Init_Structure.Alternate= GPIO_AF14_LTDC; HAL_GPIO_Init(GPIOB, &GPIO_Init_Structure); /* LTDC pins configuraiton: PG10 -- 12 */ GPIO_Init_Structure.Pin = GPIO_PIN_10 | GPIO_PIN_12; HAL_GPIO_Init(GPIOG, &GPIO_Init_Structure); /* Set LTDC Interrupt to the lowest priority */ HAL_NVIC_SetPriority(LTDC_IRQn, 0xE, 0); /* Enable LTDC Interrupt */ HAL_NVIC_EnableIRQ(LTDC_IRQn); }
开发者ID:PaxInstruments,项目名称:STM32CubeF4,代码行数:89,
示例16: HAL_HCD_MspInit/** * @brief Initializes the HCD MSP. * @param hhcd: HCD handle * @retval None */void HAL_HCD_MspInit(HCD_HandleTypeDef *hhcd){ GPIO_InitTypeDef GPIO_InitStruct; if(hhcd->Instance == USB_OTG_FS) { /* Configure USB FS GPIOs */ __HAL_RCC_GPIOA_CLK_ENABLE(); GPIO_InitStruct.Pin = (GPIO_PIN_11 | GPIO_PIN_12); 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); GPIO_InitStruct.Pin = GPIO_PIN_10; GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; GPIO_InitStruct.Pull = GPIO_PULLUP; GPIO_InitStruct.Alternate = GPIO_AF10_OTG_FS; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); /* Configure POWER_SWITCH IO pin */ BSP_IO_ConfigPin(OTG_FS1_POWER_SWITCH_PIN, IO_MODE_OUTPUT); /* Enable USB FS Clocks */ __HAL_RCC_USB_OTG_FS_CLK_ENABLE(); /* Set USBFS Interrupt to the lowest priority */ HAL_NVIC_SetPriority(OTG_FS_IRQn, 5, 0); /* Enable USBFS Interrupt */ HAL_NVIC_EnableIRQ(OTG_FS_IRQn); } else if(hhcd->Instance == USB_OTG_HS) {#ifdef USE_USB_HS_IN_FS /* Configure POWER_SWITCH IO pin */ BSP_IO_ConfigPin(OTG_FS2_POWER_SWITCH_PIN, IO_MODE_OUTPUT); __HAL_RCC_GPIOB_CLK_ENABLE(); /*Configure GPIO for HS on FS mode*/ GPIO_InitStruct.Pin = GPIO_PIN_12 | GPIO_PIN_13 | GPIO_PIN_14 |GPIO_PIN_15; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Alternate = GPIO_AF12_OTG_HS_FS; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); #else /* Configure USB FS GPIOs */ __HAL_RCC_GPIOA_CLK_ENABLE(); __HAL_RCC_GPIOB_CLK_ENABLE(); __HAL_RCC_GPIOC_CLK_ENABLE(); __HAL_RCC_GPIOH_CLK_ENABLE(); __HAL_RCC_GPIOI_CLK_ENABLE(); /* CLK */ GPIO_InitStruct.Pin = GPIO_PIN_5; 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); /* D0 */ GPIO_InitStruct.Pin = GPIO_PIN_3; 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); /* D1 D2 D3 D4 D5 D6 D7 */ GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_5 |/ GPIO_PIN_10 | GPIO_PIN_11 | GPIO_PIN_12 | GPIO_PIN_13; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Alternate = GPIO_AF10_OTG_HS; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); /* STP */ GPIO_InitStruct.Pin = GPIO_PIN_0; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Alternate = GPIO_AF10_OTG_HS; HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); /* NXT */ GPIO_InitStruct.Pin = GPIO_PIN_4; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL;//.........这里部分代码省略.........
开发者ID:pierreroth64,项目名称:STM32Cube_FW_F4,代码行数:101,
示例17: HAL_PCD_MspInit/** * @brief Initializes the PCD MSP. * @param hpcd: PCD handle * @retval None */void HAL_PCD_MspInit(PCD_HandleTypeDef *hpcd){ GPIO_InitTypeDef GPIO_InitStruct; if(hpcd->Instance == USB_OTG_FS) { /* Configure USB FS GPIOs */ __HAL_RCC_GPIOA_CLK_ENABLE(); /* Configure DM DP Pins */ GPIO_InitStruct.Pin = (GPIO_PIN_11 | GPIO_PIN_12); 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 VBUS Pin */ GPIO_InitStruct.Pin = GPIO_PIN_9; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); /* Configure ID pin */ GPIO_InitStruct.Pin = GPIO_PIN_10; GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; GPIO_InitStruct.Pull = GPIO_PULLUP; GPIO_InitStruct.Alternate = GPIO_AF10_OTG_FS; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); /* Enable USB FS Clocks */ __HAL_RCC_USB_OTG_FS_CLK_ENABLE(); /* Set USBFS Interrupt to the lowest priority */ HAL_NVIC_SetPriority(OTG_FS_IRQn, 7, 0); /* Enable USBFS Interrupt */ HAL_NVIC_EnableIRQ(OTG_FS_IRQn); } else if(hpcd->Instance == USB_OTG_HS) { /* Configure USB FS GPIOs */ __HAL_RCC_GPIOA_CLK_ENABLE(); __HAL_RCC_GPIOB_CLK_ENABLE(); __HAL_RCC_GPIOC_CLK_ENABLE(); __HAL_RCC_GPIOH_CLK_ENABLE(); __HAL_RCC_GPIOI_CLK_ENABLE(); /* CLK */ GPIO_InitStruct.Pin = GPIO_PIN_5; 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); /* D0 */ GPIO_InitStruct.Pin = GPIO_PIN_3; 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); /* D1 D2 D3 D4 D5 D6 D7 */ GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_5 |/ GPIO_PIN_10 | GPIO_PIN_11 | GPIO_PIN_12 | GPIO_PIN_13; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Alternate = GPIO_AF10_OTG_HS; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); /* STP */ GPIO_InitStruct.Pin = GPIO_PIN_0; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Alternate = GPIO_AF10_OTG_HS; HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); /* NXT */ GPIO_InitStruct.Pin = GPIO_PIN_4; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Alternate = GPIO_AF10_OTG_HS; HAL_GPIO_Init(GPIOH, &GPIO_InitStruct); /* DIR */ GPIO_InitStruct.Pin = GPIO_PIN_11; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Alternate = GPIO_AF10_OTG_HS; HAL_GPIO_Init(GPIOI, &GPIO_InitStruct); /* Enable USB HS Clocks */ __HAL_RCC_USB_OTG_HS_CLK_ENABLE();//.........这里部分代码省略.........
开发者ID:eemei,项目名称:library-stm32f4,代码行数:101,
示例18: mainint main(void){ /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MCU Configuration----------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* Configure the system clock */ SystemClock_Config(); /* Initialize all configured peripherals */ MX_GPIO_Init(); HAL_NVIC_SetPriority(EXTI0_1_IRQn, 3, 0); HAL_NVIC_EnableIRQ(EXTI0_1_IRQn); /* USER CODE BEGIN 2 */ /* USER CODE END 2 */ /* USER CODE BEGIN RTOS_MUTEX */ /* add mutexes, ... */ /* USER CODE END RTOS_MUTEX */ /* USER CODE BEGIN RTOS_SEMAPHORES */ /* add semaphores, ... */ /* USER CODE END RTOS_SEMAPHORES */ /* USER CODE BEGIN RTOS_TIMERS */ /* start timers, add new ones, ... */ /* USER CODE END RTOS_TIMERS */ /* Create the thread(s) */ /* definition and creation of defaultTask */ //osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 128); //defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL); // TODO: make the total stack size allowable bigger. It seems that it is currently set to 500. osThreadDef(uart_task, uart_thread, osPriorityNormal, 0, 450); uart_task_handle = osThreadCreate(osThread(uart_task), NULL); osThreadDef(button_task, button_thread, osPriorityNormal, 0, 50); button_task_handle = osThreadCreate(osThread(button_task), NULL); /* USER CODE BEGIN RTOS_THREADS */ /* add threads, ... */ /* USER CODE END RTOS_THREADS */ /* USER CODE BEGIN RTOS_QUEUES */ /* add queues, ... */ /* USER CODE END RTOS_QUEUES */ /* Start scheduler */ osKernelStart(NULL, NULL); /* We should never get here as control is now taken by the scheduler */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */}
开发者ID:WiFind,项目名称:WiFind_MCU,代码行数:73,
示例19: DCMI_MspInit/** * @brief Initializes the DCMI MSP. * @param None * @retval None */static void DCMI_MspInit(void){ static DMA_HandleTypeDef hdma_eval; GPIO_InitTypeDef GPIO_Init_Structure; DCMI_HandleTypeDef *hdcmi = &hdcmi_eval; /*** Enable peripherals and GPIO clocks ***/ /* Enable DCMI clock */ __DCMI_CLK_ENABLE(); /* Enable DMA2 clock */ __DMA2_CLK_ENABLE(); /* Enable GPIO clocks */ __GPIOA_CLK_ENABLE(); __GPIOB_CLK_ENABLE(); __GPIOC_CLK_ENABLE(); __GPIOD_CLK_ENABLE(); __GPIOE_CLK_ENABLE(); /*** Configure the GPIO ***/ /* Configure DCMI GPIO as alternate function */ GPIO_Init_Structure.Pin = GPIO_PIN_4; 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_AF13_DCMI; HAL_GPIO_Init(GPIOA, &GPIO_Init_Structure); GPIO_Init_Structure.Pin = GPIO_PIN_7 | GPIO_PIN_8; 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_AF13_DCMI; HAL_GPIO_Init(GPIOB, &GPIO_Init_Structure); GPIO_Init_Structure.Pin = GPIO_PIN_6 | GPIO_PIN_7 | GPIO_PIN_8 |/ GPIO_PIN_9 | GPIO_PIN_10 | GPIO_PIN_11 |/ GPIO_PIN_12; 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_AF13_DCMI; HAL_GPIO_Init(GPIOC, &GPIO_Init_Structure); GPIO_Init_Structure.Pin = GPIO_PIN_2 | GPIO_PIN_3 | GPIO_PIN_6; 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_AF13_DCMI; HAL_GPIO_Init(GPIOD, &GPIO_Init_Structure); GPIO_Init_Structure.Pin = GPIO_PIN_6; 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_AF13_DCMI; HAL_GPIO_Init(GPIOE, &GPIO_Init_Structure); GPIO_Init_Structure.Pin = GPIO_PIN_6; 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_AF13_DCMI; HAL_GPIO_Init(GPIOA, &GPIO_Init_Structure); /*** Configure the DMA ***/ /* Set the parameters to be configured */ hdma_eval.Init.Channel = DMA_CHANNEL_1; hdma_eval.Init.Direction = DMA_PERIPH_TO_MEMORY; hdma_eval.Init.PeriphInc = DMA_PINC_DISABLE; hdma_eval.Init.MemInc = DMA_MINC_ENABLE; hdma_eval.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD; hdma_eval.Init.MemDataAlignment = DMA_MDATAALIGN_WORD; hdma_eval.Init.Mode = DMA_CIRCULAR; hdma_eval.Init.Priority = DMA_PRIORITY_HIGH; hdma_eval.Init.FIFOMode = DMA_FIFOMODE_DISABLE; hdma_eval.Init.FIFOThreshold = DMA_FIFO_THRESHOLD_FULL; hdma_eval.Init.MemBurst = DMA_MBURST_SINGLE; hdma_eval.Init.PeriphBurst = DMA_PBURST_SINGLE; hdma_eval.Instance = DMA2_Stream1; /* Associate the initialized DMA handle to the DCMI handle */ __HAL_LINKDMA(hdcmi, DMA_Handle, hdma_eval); /*** Configure the NVIC for DCMI and DMA ***/ /* NVIC configuration for DCMI transfer complete interrupt */ HAL_NVIC_SetPriority(DCMI_IRQn, 5, 0); HAL_NVIC_EnableIRQ(DCMI_IRQn); /* NVIC configuration for DMA2D transfer complete interrupt */ HAL_NVIC_SetPriority(DMA2_Stream1_IRQn, 5, 0); HAL_NVIC_EnableIRQ(DMA2_Stream1_IRQn); //.........这里部分代码省略.........
开发者ID:erdincay,项目名称:stm32f401-nucleo-basic-template,代码行数:101,
示例20: HAL_QSPI_MspInit/** * @brief QSPI MSP Initialization * This function configures the hardware resources used in this example: * - Peripheral's clock enable * - Peripheral's GPIO Configuration * - DMA configuration for requests by peripheral * - NVIC configuration for DMA and QSPI interrupts * @param hqspi: QSPI handle pointer * @retval None */void HAL_QSPI_MspInit(QSPI_HandleTypeDef *hqspi){ GPIO_InitTypeDef GPIO_InitStruct; static DMA_HandleTypeDef hdma; /*##-1- Enable peripherals and GPIO Clocks #################################*/ /* Enable the QuadSPI memory interface clock */ QSPI_CLK_ENABLE(); /* Reset the QuadSPI memory interface */ QSPI_FORCE_RESET(); QSPI_RELEASE_RESET(); /* Enable GPIO clocks */ QSPI_CS_GPIO_CLK_ENABLE(); QSPI_CLK_GPIO_CLK_ENABLE(); QSPI_D0_GPIO_CLK_ENABLE(); QSPI_D1_GPIO_CLK_ENABLE(); QSPI_D2_GPIO_CLK_ENABLE(); QSPI_D3_GPIO_CLK_ENABLE(); /* Enable DMA clock */ QSPI_DMA_CLK_ENABLE(); /*##-2- Configure peripheral GPIO ##########################################*/ /* QSPI CS GPIO pin configuration */ GPIO_InitStruct.Pin = QSPI_CS_PIN; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_PULLUP; GPIO_InitStruct.Speed = GPIO_SPEED_HIGH; GPIO_InitStruct.Alternate = GPIO_AF10_QSPI; HAL_GPIO_Init(QSPI_CS_GPIO_PORT, &GPIO_InitStruct); /* QSPI CLK GPIO pin configuration */ GPIO_InitStruct.Pin = QSPI_CLK_PIN; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Alternate = GPIO_AF9_QSPI; HAL_GPIO_Init(QSPI_CLK_GPIO_PORT, &GPIO_InitStruct); /* QSPI D0 GPIO pin configuration */ GPIO_InitStruct.Pin = QSPI_D0_PIN; GPIO_InitStruct.Alternate = GPIO_AF10_QSPI; HAL_GPIO_Init(QSPI_D0_GPIO_PORT, &GPIO_InitStruct); /* QSPI D1 GPIO pin configuration */ GPIO_InitStruct.Pin = QSPI_D1_PIN; GPIO_InitStruct.Alternate = GPIO_AF10_QSPI; HAL_GPIO_Init(QSPI_D1_GPIO_PORT, &GPIO_InitStruct); /* QSPI D2 GPIO pin configuration */ GPIO_InitStruct.Pin = QSPI_D2_PIN; GPIO_InitStruct.Alternate = GPIO_AF9_QSPI; HAL_GPIO_Init(QSPI_D2_GPIO_PORT, &GPIO_InitStruct); /* QSPI D3 GPIO pin configuration */ GPIO_InitStruct.Pin = QSPI_D3_PIN; GPIO_InitStruct.Alternate = GPIO_AF9_QSPI; HAL_GPIO_Init(QSPI_D3_GPIO_PORT, &GPIO_InitStruct); /*##-3- Configure the NVIC for QSPI #########################################*/ /* NVIC configuration for QSPI interrupt */ HAL_NVIC_SetPriority(QUADSPI_IRQn, 0x0F, 0); HAL_NVIC_EnableIRQ(QUADSPI_IRQn); /*##-4- Configure the DMA channel ###########################################*/ /* QSPI DMA channel configuration */ hdma.Init.Channel = QSPI_DMA_CHANNEL; hdma.Init.PeriphInc = DMA_PINC_DISABLE; hdma.Init.MemInc = DMA_MINC_ENABLE; hdma.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; hdma.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; hdma.Init.Mode = DMA_NORMAL; hdma.Init.Priority = DMA_PRIORITY_LOW; hdma.Init.FIFOMode = DMA_FIFOMODE_DISABLE; /* FIFO mode disabled */ hdma.Init.FIFOThreshold = DMA_FIFO_THRESHOLD_FULL; hdma.Init.MemBurst = DMA_MBURST_SINGLE; /* Memory burst */ hdma.Init.PeriphBurst = DMA_PBURST_SINGLE; /* Peripheral burst */ hdma.Instance = QSPI_DMA_INSTANCE; __HAL_LINKDMA(hqspi, hdma, hdma); HAL_DMA_Init(&hdma); /* NVIC configuration for DMA interrupt */ HAL_NVIC_SetPriority(QSPI_DMA_IRQ, 0x00, 0); HAL_NVIC_EnableIRQ(QSPI_DMA_IRQ);}
开发者ID:Joe-Merten,项目名称:Stm32-Tools-Evaluation,代码行数:94,
示例21: HAL_InitTick//.........这里部分代码省略......... RCC_OscInitStruct.LSIState = RCC_LSI_ON; PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSI;#elif defined (RTC_CLOCK_SOURCE_HSE) /* Configue HSE as RTC clock soucre */ RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; RCC_OscInitStruct.HSEState = RCC_HSE_ON; /* Ensure that RTC is clocked by 1MHz */ PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_1MHZ;#else#error Please select the RTC Clock source#endif /* RTC_CLOCK_SOURCE_LSE */ if(HAL_RCC_OscConfig(&RCC_OscInitStruct) == HAL_OK) { PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_RTC; if(HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) == HAL_OK) { /* Enable RTC Clock */ __HAL_RCC_RTC_ENABLE(); /* The time base should be 1ms Time base = ((RTC_ASYNCH_PREDIV + 1) * (RTC_SYNCH_PREDIV + 1)) / RTC_CLOCK HSE as RTC clock Time base = ((99 + 1) * (9 + 1)) / 1MHz = 1ms LSE as RTC clock Time base = ((31 + 1) * (0 + 1)) / 32.768KHz = ~1ms LSI as RTC clock Time base = ((31 + 1) * (0 + 1)) / 32KHz = 1ms */ hRTC_Handle.Instance = RTC; hRTC_Handle.Init.HourFormat = RTC_HOURFORMAT_24; hRTC_Handle.Init.AsynchPrediv = RTC_ASYNCH_PREDIV; hRTC_Handle.Init.SynchPrediv = RTC_SYNCH_PREDIV; hRTC_Handle.Init.OutPut = RTC_OUTPUT_DISABLE; hRTC_Handle.Init.OutPutPolarity = RTC_OUTPUT_POLARITY_HIGH; hRTC_Handle.Init.OutPutType = RTC_OUTPUT_TYPE_OPENDRAIN; HAL_RTC_Init(&hRTC_Handle); /* Disable the write protection for RTC registers */ __HAL_RTC_WRITEPROTECTION_DISABLE(&hRTC_Handle); /* Disable the Alarm A interrupt */ __HAL_RTC_ALARMA_DISABLE(&hRTC_Handle); /* Clear flag alarm A */ __HAL_RTC_ALARM_CLEAR_FLAG(&hRTC_Handle, RTC_FLAG_ALRAF); counter = 0U; /* Wait till RTC ALRAWF flag is set and if Time out is reached exit */ while(__HAL_RTC_ALARM_GET_FLAG(&hRTC_Handle, RTC_FLAG_ALRAWF) == RESET) { if(counter++ == (SystemCoreClock /48U)) /* Timeout = ~ 1s */ { return HAL_ERROR; } } hRTC_Handle.Instance->ALRMAR = (uint32_t)0x01U; /* Configure the Alarm state: Enable Alarm */ __HAL_RTC_ALARMA_ENABLE(&hRTC_Handle); /* Configure the Alarm interrupt */ __HAL_RTC_ALARM_ENABLE_IT(&hRTC_Handle, RTC_IT_ALRA); /* RTC Alarm Interrupt Configuration: EXTI configuration */ __HAL_RTC_ALARM_EXTI_ENABLE_IT(); __HAL_RTC_ALARM_EXTI_ENABLE_RISING_EDGE(); /* Check if the Initialization mode is set */ if((hRTC_Handle.Instance->ISR & RTC_ISR_INITF) == (uint32_t)RESET) { /* Set the Initialization mode */ hRTC_Handle.Instance->ISR = (uint32_t)RTC_INIT_MASK; counter = 0U; while((hRTC_Handle.Instance->ISR & RTC_ISR_INITF) == (uint32_t)RESET) { if(counter++ == (SystemCoreClock /48U)) /* Timeout = ~ 1s */ { return HAL_ERROR; } } } hRTC_Handle.Instance->DR = 0U; hRTC_Handle.Instance->TR = 0U; hRTC_Handle.Instance->ISR &= (uint32_t)~RTC_ISR_INIT; /* Enable the write protection for RTC registers */ __HAL_RTC_WRITEPROTECTION_ENABLE(&hRTC_Handle); HAL_NVIC_SetPriority(RTC_Alarm_IRQn, TickPriority, 0U); HAL_NVIC_EnableIRQ(RTC_Alarm_IRQn); return HAL_OK; } } return HAL_ERROR;}
开发者ID:Hom-Wang,项目名称:SmartIMU,代码行数:101,
示例22: TIM_LED_Config/** * @brief Configures TIM4 Peripheral for LEDs lighting. * @param None * @retval None */static void TIM_LED_Config(void){ uint16_t prescalervalue = 0; uint32_t tmpvalue = 0; /* TIM4 clock enable */ __HAL_RCC_TIM4_CLK_ENABLE(); /* Enable the TIM4 global Interrupt */ HAL_NVIC_SetPriority(TIM4_IRQn, 7, 0); HAL_NVIC_EnableIRQ(TIM4_IRQn); /* ----------------------------------------------------------------------- TIM4 Configuration: Output Compare Timing Mode: To get TIM4 counter clock at 550 KHz, the prescaler is computed as follows: Prescaler = (TIM4CLK / TIM4 counter clock) - 1 Prescaler = ((f(APB1) * 2) /550 KHz) - 1 CC update rate = TIM4 counter clock / CCR_Val = 32.687 Hz ==> Toggling frequency = 16.343 Hz ----------------------------------------------------------------------- */ /* Compute the prescaler value */ tmpvalue = HAL_RCC_GetPCLK1Freq(); prescalervalue = (uint16_t) ((tmpvalue * 2) / 550000) - 1; /* Time base configuration */ hTimLed.Instance = TIM4; hTimLed.Init.Period = 65535; hTimLed.Init.Prescaler = prescalervalue; hTimLed.Init.ClockDivision = 0; hTimLed.Init.CounterMode = TIM_COUNTERMODE_UP; if(HAL_TIM_OC_Init(&hTimLed) != HAL_OK) { /* Initialization Error */ Error_Handler(); } /* Output Compare Timing Mode configuration: Channel1 */ sConfigLed.OCMode = TIM_OCMODE_TIMING; sConfigLed.OCIdleState = TIM_OCIDLESTATE_SET; sConfigLed.Pulse = CCR1Val; sConfigLed.OCPolarity = TIM_OCPOLARITY_HIGH; sConfigLed.OCNPolarity = TIM_OCNPOLARITY_HIGH; sConfigLed.OCFastMode = TIM_OCFAST_ENABLE; sConfigLed.OCNIdleState = TIM_OCNIDLESTATE_SET; /* Initialize the TIM4 Channel1 with the structure above */ if(HAL_TIM_OC_ConfigChannel(&hTimLed, &sConfigLed, TIM_CHANNEL_1) != HAL_OK) { /* Initialization Error */ Error_Handler(); } /* Start the Output Compare */ if(HAL_TIM_OC_Start_IT(&hTimLed, TIM_CHANNEL_1) != HAL_OK) { /* Start Error */ Error_Handler(); }}
开发者ID:glocklueng,项目名称:STM32F401-TP_FINAL,代码行数:66,
示例23: uart_init_peripheralstatic int uart_init_peripheral(void){ __HAL_RCC_USART2_CLK_ENABLE(); __HAL_RCC_DMA1_CLK_ENABLE(); UARThandle.Instance = UART_INSTANCE; UARThandle.Init.BaudRate = UART_BAUDRATE; UARThandle.Init.WordLength = UART_WORDLENGTH_8B; UARThandle.Init.StopBits = UART_STOPBITS_1; UARThandle.Init.Parity = UART_PARITY_NONE; UARThandle.Init.HwFlowCtl = UART_HWCONTROL_NONE; UARThandle.Init.OverSampling = UART_OVERSAMPLING_8; UARThandle.Init.Mode = UART_MODE_TX_RX; DMAhandle_TX.Instance = DMA1_Stream6; DMAhandle_TX.Init.Channel = DMA_CHANNEL_4; DMAhandle_TX.Init.Direction = DMA_MEMORY_TO_PERIPH; DMAhandle_TX.Init.FIFOMode = DMA_FIFOMODE_DISABLE; DMAhandle_TX.Init.MemBurst = DMA_MBURST_SINGLE; DMAhandle_TX.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; DMAhandle_TX.Init.MemInc = DMA_MINC_ENABLE; DMAhandle_TX.Init.Mode = DMA_NORMAL; DMAhandle_TX.Init.PeriphBurst = DMA_PBURST_SINGLE; DMAhandle_TX.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; DMAhandle_TX.Init.PeriphInc = DMA_PINC_DISABLE; DMAhandle_TX.Init.Priority = DMA_PRIORITY_LOW; DMAhandle_RX = DMAhandle_TX; DMAhandle_RX.Instance = DMA1_Stream5; DMAhandle_RX.Init.Channel = DMA_CHANNEL_4; DMAhandle_RX.Init.Direction = DMA_PERIPH_TO_MEMORY; DMAhandle_RX.Init.Mode = DMA_CIRCULAR; UARThandle.hdmatx = &DMAhandle_TX; UARThandle.hdmarx = &DMAhandle_RX; HAL_UART_DeInit(&UARThandle); HAL_UART_Init(&UARThandle); UART_INSTANCE->BRR = (2u << 4u) | (5u); /* Baudrate = 2000000 with SYSCLK=168MHz, * HAL is not very good at figuring this number out... */ HAL_DMA_DeInit(&DMAhandle_TX); HAL_DMA_Init(&DMAhandle_TX); HAL_DMA_DeInit(&DMAhandle_RX); HAL_DMA_Init(&DMAhandle_RX); NVIC_SetPriority(DMA1_Stream6_IRQn, UART_DMA_TX_IRQ_PRIO); HAL_NVIC_EnableIRQ(DMA1_Stream6_IRQn); NVIC_SetPriority(DMA1_Stream5_IRQn, UART_DMA_RX_IRQ_PRIO); HAL_NVIC_EnableIRQ(DMA1_Stream5_IRQn); /* Use uart data register as peripheral destination for TX */ DMAhandle_TX.Instance->PAR = (uint32_t) &(UARThandle.Instance->DR); /* Set source and destination address and buffer length */ DMAhandle_RX.Instance->NDTR = RX_BUF_LEN; DMAhandle_RX.Instance->PAR = (uint32_t) &(UARThandle.Instance->DR); DMAhandle_RX.Instance->M0AR = (uint32_t) dma_buffer_rx; /* Enable UART as DMA enabled receiver */ UARThandle.Instance->CR3 |= USART_CR3_DMAR; /* Enable transfer complete interrupt */ __HAL_DMA_ENABLE_IT(&DMAhandle_RX, DMA_IT_TC); __HAL_DMA_ENABLE(&DMAhandle_RX); return 0;}
开发者ID:osannolik,项目名称:calmeas,代码行数:69,
示例24: hw_TemperatureManageInit/** /brief 温度控制硬件初始化 * * /return void */void hw_TemperatureManageInit(void){ ///ADC配置,ADC1,in10,in11,in12,in13 GPIO_InitTypeDef GPIO_InitStruct; TIM_OC_InitTypeDef TIM_InitStruct; ADC_ChannelConfTypeDef sConfig; ADC_HandleStruct.Instance = ADC1; if (HAL_ADC_DeInit(&ADC_HandleStruct) != HAL_OK) { return; } ADC_HandleStruct.Init.ScanConvMode = ADC_SCAN_ENABLE; ADC_HandleStruct.Init.ContinuousConvMode = ENABLE; ADC_HandleStruct.Init.DiscontinuousConvMode = DISABLE; ADC_HandleStruct.Init.DataAlign = ADC_DATAALIGN_RIGHT; ADC_HandleStruct.Init.ExternalTrigConv = ADC_SOFTWARE_START; ADC_HandleStruct.Init.NbrOfConversion = HEATER_COUNT; init_BeforeADC(); HAL_ADC_Init(&ADC_HandleStruct); sConfig.Channel = ADC_CHANNEL_10; ///Channel_Extruder_0 sConfig.Rank = 1; sConfig.SamplingTime = ADC_SAMPLETIME_71CYCLES_5; HAL_ADC_ConfigChannel(&ADC_HandleStruct, &sConfig);#ifdef HEATBED_ENABLED sConfig.Channel = ADC_CHANNEL_11; ///Channel_bed sConfig.Rank = 2; sConfig.SamplingTime = ADC_SAMPLETIME_71CYCLES_5; HAL_ADC_ConfigChannel(&ADC_HandleStruct, &sConfig);#endif#ifdef EXTRUDER_2_ENABLED sConfig.Channel = ADC_CHANNEL_12; ///Channel_Extruder_1 sConfig.Rank = 3; sConfig.SamplingTime = ADC_SAMPLETIME_71CYCLES_5; HAL_ADC_ConfigChannel(&ADC_HandleStruct, &sConfig);#endif#ifdef EXTRUDER_3_ENABLED sConfig.Channel = ADC_CHANNEL_13; ///Channel_Extruder_2 sConfig.Rank = 4; sConfig.SamplingTime = ADC_SAMPLETIME_71CYCLES_5; HAL_ADC_ConfigChannel(&ADC_HandleStruct, &sConfig);#endif HAL_ADCEx_Calibration_Start(&ADC_HandleStruct); ///ADC时钟配置 采样周期100ms __HAL_RCC_TIM6_CLK_ENABLE(); TIM_ADC_HandleStruct.Instance = TIM6; TIM_ADC_HandleStruct.Init.Period = 1000 - 1; TIM_ADC_HandleStruct.Init.Prescaler = (uint32_t) (SystemCoreClock/2/10000) - 1; TIM_ADC_HandleStruct.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; TIM_ADC_HandleStruct.Init.CounterMode = TIM_COUNTERMODE_UP; HAL_TIM_Base_Init(&TIM_ADC_HandleStruct); __HAL_TIM_SET_COUNTER(&TIM_ADC_HandleStruct, 0); HAL_NVIC_SetPriority(TIM6_IRQn, 4, 0); HAL_NVIC_EnableIRQ(TIM6_IRQn); ///加热PWM配置 PB6,7,8,9 __HAL_RCC_GPIOB_CLK_ENABLE(); GPIO_InitStruct.Pin = GPIO_PIN_6;#ifdef HEATBED_ENABLED GPIO_InitStruct.Pin |= GPIO_PIN_7;#endif#ifdef EXTRUDER_2_ENABLED GPIO_InitStruct.Pin |= GPIO_PIN_8;#endif#ifdef EXTRUDER_3_ENABLED GPIO_InitStruct.Pin |= GPIO_PIN_9;#endif GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; ///内部不做上下拉电阻 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); ///PWM时钟配置 __HAL_RCC_TIM4_CLK_ENABLE(); TIM_PWM_HandleStruct.Instance = TIM4; TIM_PWM_HandleStruct.Init.Prescaler = (uint32_t) (SystemCoreClock/2/250000) - 1; TIM_PWM_HandleStruct.Init.Period = 254; ///总共255 TIM_PWM_HandleStruct.Init.ClockDivision = 0; TIM_PWM_HandleStruct.Init.CounterMode = TIM_COUNTERMODE_UP; HAL_TIM_PWM_Init(&TIM_PWM_HandleStruct); TIM_InitStruct.OCMode = TIM_OCMODE_PWM1; TIM_InitStruct.OCPolarity = TIM_OCPOLARITY_HIGH; TIM_InitStruct.OCFastMode = TIM_OCFAST_DISABLE; TIM_InitStruct.Pulse = 0; HAL_TIM_PWM_ConfigChannel(&TIM_PWM_HandleStruct, &TIM_InitStruct, TIM_CHANNEL_1);//.........这里部分代码省略.........
开发者ID:RennWang,项目名称:JawsFromMarlin,代码行数:101,
示例25: HAL_TIM_IC_MspInit/** * @brief TIM MSP Initialization * This function configures the hardware resources used in this example: * - Peripheral's clock enable * - Peripheral's GPIO Configuration * @param htim: TIM handle pointer * @retval None */void HAL_TIM_IC_MspInit(TIM_HandleTypeDef *htim){ GPIO_InitTypeDef GPIO_InitStruct; if( htim == &TimHandleSonar){ /*##-1- Enable peripherals and GPIO Clocks #################################*/ /* TIMx Peripheral clock enable */ TIMsonar_CLK_ENABLE(); /* Enable GPIO channels Clock */ ICx_PORT_CLK_ENABLE(); /* Configure (TIMx_Channel) in Alternate function, push-pull and 100MHz speed */ GPIO_InitStruct.Pin = ICx_PIN; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_PULLUP; GPIO_InitStruct.Speed = GPIO_SPEED_MEDIUM; GPIO_InitStruct.Alternate = GPIO_AF_TIMsonar; HAL_GPIO_Init(ICx_PORT, &GPIO_InitStruct); /*##-2- Configure the NVIC for TIMx ########################################*/ /* Set the TIMx priority */ HAL_NVIC_SetPriority(TIMsonar_IRQn, 0, 1); /* Enable the TIMx global Interrupt */ HAL_NVIC_EnableIRQ(TIMsonar_IRQn); } #ifdef INPUT_PWM else if( htim == &TimHandle_PWM ){ /*##-1- Enable peripherals and GPIO Clocks #################################*/ /* TIM_PWM Peripheral clock enable */ TIM_PWM_CLK_ENABLE(); /* Enable GPIO Channels Clock */ TIM_PWM_GPIO_CLK_ENABLE(); /*##-2- Configure I/Os #####################################################*/ /* */ /* Common configuration for all channels */ GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_PULLUP; GPIO_InitStruct.Speed = GPIO_SPEED_HIGH; GPIO_InitStruct.Alternate = GPIO_AF2_TIM4; GPIO_InitStruct.Pin = GPIO_PIN_CHANNEL1; HAL_GPIO_Init(TIM_PWM_GPIO_PORT, &GPIO_InitStruct); GPIO_InitStruct.Pin = GPIO_PIN_CHANNEL2; HAL_GPIO_Init(TIM_PWM_GPIO_PORT, &GPIO_InitStruct); GPIO_InitStruct.Pin = GPIO_PIN_CHANNEL3; HAL_GPIO_Init(TIM_PWM_GPIO_PORT, &GPIO_InitStruct); GPIO_InitStruct.Pin = GPIO_PIN_CHANNEL4; HAL_GPIO_Init(TIM_PWM_GPIO_PORT, &GPIO_InitStruct); /*##-2- Configure the NVIC for TIMx ########################################*/ /* Set the TIMx priority */ HAL_NVIC_SetPriority(TIM_PWM_IRQn, 4, 1); /* Enable the TIMx global Interrupt */ HAL_NVIC_EnableIRQ(TIM_PWM_IRQn); } #endif}
开发者ID:ydwzj,项目名称:STM32F4,代码行数:70,
示例26: configure_stepper_motor//******************************************************************************// Configure Stepper Motor//// Configure the stepp er motor we will be using:// - Configure control pins: DIR,// - Configure SPI uses to talk to EasySpin chip// - Setup interrupt handlers to catch IRQ requests from EasySpin//******************************************************************************int configure_stepper_motor (void){ int rc; TIM_HandleTypeDef *tim_handle; // CHEAP HACK - FIX TIM_MasterConfigTypeDef sMasterConfig; // TEMP HACK// --- begin --- The following is equivalent to Easyspin_Begin() code //--------------------------------------------------------------------- // Configure easySPIN - DIR pin for device 1 - D7 //--------------------------------------------------------------------- pin_Config (L6474_DIR_1_PIN, GPIO_OUTPUT, 0); pin_High (L6474_DIR_1_PIN); // set default direction = Forward // 1 = forward, 0 = Backward //--------------------------------------------------------------------- // Configure easySPIN - STBY/RESET pin - D8 //--------------------------------------------------------------------- pin_Config (L6474_RESET_PIN, GPIO_OUTPUT, 0); pin_Low (L6474_RESET_PIN); // turn on RESET to L6474 //-------------------------------------------------------------------------- // Config easySPIN - Interrupt IRQ Flag pin and associated EXTI in NVIC - D2 // // Note that this configures everything, but leaves the interrupt disabled. // This is done in order to complete any other needed config operations, // before turning on interrupts. // A subsequent call to pin_Enable_IRQ() will enable the NVIC interrupt. //-------------------------------------------------------------------------- pin_Config_IRQ_Pin (L6474_IRQ_PIN, GPIO_RUPT_MODE_FALLING, PIN_USE_PULLUP, L6474_EXTI_IRQ_NUM, 5);// BUG in above code not setting IRQn right ? /* Set Priority of External Line Interrupt used for the Flag interrupt*/ HAL_NVIC_SetPriority (L6474_EXTI_IRQ_NUM, 5, 0); // EXTI15_10_IRQn /* Enable the External Line Interrupt used for the Flag interrupt */ HAL_NVIC_EnableIRQ (L6474_EXTI_IRQ_NUM); //----------------------------------------------------------------------- // SPI Init // Config easySPIN SPI interface and CS pin. CS pin is D10 // Uses SPI 1 (PA5 / PA6 / PA7) on most Nucleos. //-----------------------------------------------------------------------// easyspin uses: SPI_BAUDRATEPRESCALER_32 - FIX THIS pin_Config (L6474_CS_PIN, GPIO_OUTPUT, 0); // configure Chip Select pin_High (L6474_CS_PIN); // and DE-Assert CS rc = spi_Init (L6474_SPI_MODULE, SPI_MASTER, L6474_SPI_MODE, L6474_SPI_BAUD, 0); //----------------------------------------------------------------- // PWM Init // Configure the PWM module to be used to drive the Stepper motor // // Uses PC7 (Arduino D9) = TIM3_CH2 // PC7 has Timer3 Ch2 for _all_ chips _except_ F3-02 and L0-53 //----------------------------------------------------------------- // SystemCoreClock variable holds HCLK frequency and is defined in system_stm32f4xx.c file.// easy_spin uses Init.ClockDivision = TIM_CLOCKDIVISION_DIV1 !!! ??? FIX THIS !!! ??? WVD/// uwPeriod = (SystemCoreClock / 20000 ) - 1; // set period = 20 K Hz - WVD LOGIC uwPeriod = 0; // at startup, period is set to 0 if (rc == HAL_OK) rc = pwm_Init (L6474_PWM_1_MODULE, uwPeriod, 0); // actual rate on scope = 40 KHz ! timer_Set_Prescalar(L6474_PWM_1_MODULE, (TIMER_PRESCALER - 1), 0); // ensure pwm_Init turned on clocks//pHTim->Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; //------------------------------------- // Configure PWM channel to be used //------------------------------------- if (rc == HAL_OK) rc = pwm_Config_Channel (L6474_PWM_1_MODULE, L6474_PWM_1_CHANNEL, 0, TIMER_PIN_POLARITY_HIGH); // 0 % duty cycle// sConfigOC.OCMode = TIM_OCMODE_PWM1;// sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;// sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;// ??? !!! WVD ??? !!! RESOLVE THIS tim_handle = (TIM_HandleTypeDef*) board_timerpwm_get_handle (L6474_PWM_1_MODULE); // !!! CHEAP HACK - WVD FIX THIS !!! ??? sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; HAL_TIMEx_MasterConfigSynchronization (tim_handle, &sMasterConfig); //--------------------------------------------------------- // Setup the callback handler for the PWM/Timer Interrupt //---------------------------------------------------------//.........这里部分代码省略.........
开发者ID:GrandviewIoT,项目名称:Industrial_IoT_Projects,代码行数:101,
示例27: main_taskvoid main_task(void *pvParameters){ (void) pvParameters; vTaskDelay(500 / portTICK_RATE_MS); SPIMaster spi5(SPI5, SPI_BAUDRATEPRESCALER_32, 0x2000, { {MEMS_SPI_SCK_PIN, GPIO_MODE_AF_PP, GPIO_PULLDOWN, GPIO_SPEED_MEDIUM, GPIO_AF5_SPI5}, {MEMS_SPI_MISO_PIN, GPIO_MODE_AF_PP, GPIO_PULLDOWN, GPIO_SPEED_MEDIUM, GPIO_AF5_SPI5}, {MEMS_SPI_MOSI_PIN, GPIO_MODE_AF_PP, GPIO_NOPULL, GPIO_SPEED_MEDIUM, GPIO_AF5_SPI5}, }, { {GYRO_CS_PIN, GPIO_MODE_OUTPUT_PP, GPIO_PULLUP, GPIO_SPEED_MEDIUM, 0}, {ACCEL_CS_PIN, GPIO_MODE_OUTPUT_PP, GPIO_PULLUP, GPIO_SPEED_MEDIUM, 0}, }); SPIMaster spi2(SPI2, SPI_BAUDRATEPRESCALER_32, 0x2000, { {EXT_MEMS_SPI_SCK_PIN, GPIO_MODE_AF_PP, GPIO_PULLDOWN, GPIO_SPEED_MEDIUM, GPIO_AF5_SPI2}, {EXT_MEMS_SPI_MISO_PIN, GPIO_MODE_AF_PP, GPIO_PULLDOWN, GPIO_SPEED_MEDIUM, GPIO_AF5_SPI2}, {EXT_MEMS_SPI_MOSI_PIN, GPIO_MODE_AF_PP, GPIO_NOPULL, GPIO_SPEED_MEDIUM, GPIO_AF5_SPI2}, }, { {EXT_GYRO_CS_PIN, GPIO_MODE_OUTPUT_PP, GPIO_PULLUP, GPIO_SPEED_MEDIUM, 0}, {LPS25HB_PRESSURE_CS_PIN, GPIO_MODE_OUTPUT_PP, GPIO_PULLUP, GPIO_SPEED_MEDIUM, 0}, {BMP280_PRESSURE_CS_PIN, GPIO_MODE_OUTPUT_PP, GPIO_PULLUP, GPIO_SPEED_MEDIUM, 0}, }); L3GD20 gyro(spi5, 0); LPS25HB lps25hb(spi2, 1); BMP280 bmp2(spi2, 2); LSM303D accel(spi5, 1); uint8_t gyro_wtm = 5; uint8_t acc_wtm = 8; TimeStamp console_update_time; TimeStamp sample_dt; TimeStamp led_toggle_ts; FlightControl flight_ctl; static bool print_to_console = false; LowPassFilter<Vector3f, float> gyro_lpf({0.5}); LowPassFilter<Vector3f, float> acc_lpf_alt({0.9}); LowPassFilter<Vector3f, float> acc_lpf_att({0.990}); LowPassFilter<float, float> pressure_lpf({0.6}); attitudetracker att; /* * Apply the boot configuration from flash memory. */ dronestate_boot_config(*drone_state); L3GD20Reader gyro_reader(gyro, GYRO_INT2_PIN, gyro_align); LSM303Reader acc_reader(accel, ACC_INT2_PIN, acc_align); UartRpcServer rpcserver(*drone_state, configdata, acc_reader.mag_calibrator_); bmp2.set_oversamp_pressure(BMP280_OVERSAMP_16X); bmp2.set_work_mode(BMP280_ULTRA_HIGH_RESOLUTION_MODE); bmp2.set_filter(BMP280_FILTER_COEFF_OFF); Bmp280Reader bmp_reader(bmp2); HAL_NVIC_SetPriority(DMA1_Stream6_IRQn, 1, 1); HAL_NVIC_EnableIRQ (DMA1_Stream6_IRQn); HAL_NVIC_SetPriority(DMA1_Stream5_IRQn, 1, 0); HAL_NVIC_EnableIRQ (DMA1_Stream5_IRQn);#ifndef ENABLE_UART_TASK uart2.uart_dmarx_start();#endif printf("Priority Group: %lu/n", NVIC_GetPriorityGrouping()); printf("SysTick_IRQn priority: %lu/n", NVIC_GetPriority(SysTick_IRQn) << __NVIC_PRIO_BITS); printf("configKERNEL_INTERRUPT_PRIORITY: %d/n", configKERNEL_INTERRUPT_PRIORITY); printf("configMAX_SYSCALL_INTERRUPT_PRIORITY: %d/n", configMAX_SYSCALL_INTERRUPT_PRIORITY); printf("LPS25HB Device id: %d/n", lps25hb.Get_DeviceID()); vTaskDelay(500 / portTICK_RATE_MS); gyro_reader.init(gyro_wtm); gyro_reader.enable_int2(false); vTaskDelay(500 / portTICK_RATE_MS); acc_reader.init(acc_wtm); acc_reader.enable_int2(false); acc_reader.mag_calibrator_.set_bias(drone_state->mag_bias_); acc_reader.mag_calibrator_.set_scale_factor(drone_state->mag_scale_factor_); vTaskDelay(500 / portTICK_RATE_MS); printf("Calibrating..."); gyro_reader.enable_int2(true); gyro_reader.calculate_static_bias_filtered(2400); printf(" Done!/n"); flight_ctl.start_receiver(); printf("Entering main loop.../n"); gyro_reader.enable_int2(true); sample_dt.time_stamp(); lps25hb.Set_FifoMode(LPS25HB_FIFO_STREAM_MODE); lps25hb.Set_FifoModeUse(LPS25HB_ENABLE); lps25hb.Set_Odr(LPS25HB_ODR_25HZ); lps25hb.Set_Bdu(LPS25HB_BDU_NO_UPDATE);//.........这里部分代码省略.........
开发者ID:sigmadrone,项目名称:sigmadrone,代码行数:101,
示例28: HAL_TIM_PWM_MspInit/******************************************************************************* * PWM * * @brief PWM MSP Initialization * @param[in] htim_pwm PWM handle pointer * @retval None */void HAL_TIM_PWM_MspInit (TIM_HandleTypeDef* htim_pwm){ GPIO_InitTypeDef GPIO_InitStruct; if (htim_pwm->Instance == easySPIN_TIMER_PWM1) { /* Peripheral clock enable */ __easySPIN_PWM1_CLCK_ENABLE(); /* GPIO configuration */ GPIO_InitStruct.Pin = easySPIN_PWM_1_PIN; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_LOW; GPIO_InitStruct.Alternate = easySPIN_AFx_TIMx_PWM1; HAL_GPIO_Init (easySPIN_PWM_1_PORT, &GPIO_InitStruct); /* Set Interrupt Group Priority of Timer3 Interrupt*/ HAL_NVIC_SetPriority(easySPIN_PWM1_IRQn, 4, 0); /* Enable the timer3 global Interrupt */ HAL_NVIC_EnableIRQ(easySPIN_PWM1_IRQn); } else if (htim_pwm->Instance == easySPIN_TIMER_PWM2) { /* Peripheral clock enable */ __easySPIN_PWM2_CLCK_ENABLE(); /* GPIO configuration */ GPIO_InitStruct.Pin = easySPIN_PWM_2_PIN; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_LOW; GPIO_InitStruct.Alternate = easySPIN_AFx_TIMx_PWM2; HAL_GPIO_Init (easySPIN_PWM_2_PORT, &GPIO_InitStruct); /* Set Interrupt Group Priority of Timer2 Interrupt*/ HAL_NVIC_SetPriority(easySPIN_PWM2_IRQn, 4, 0); /* Enable the timer2 global Interrupt */ HAL_NVIC_EnableIRQ(easySPIN_PWM2_IRQn); } else if (htim_pwm->Instance == easySPIN_TIMER_PWM3) { /* Peripheral clock enable */ __easySPIN_PWM3_CLCK_ENABLE(); /* GPIO configuration */ GPIO_InitStruct.Pin = easySPIN_PWM_3_PIN; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_LOW; HAL_GPIO_Init (easySPIN_PWM_3_PORT, &GPIO_InitStruct); /* Set Interrupt Group Priority of Timer4 Interrupt*/ HAL_NVIC_SetPriority(easySPIN_PWM3_IRQn, 3, 0); /* Enable the timer4 global Interrupt */ HAL_NVIC_EnableIRQ(easySPIN_PWM3_IRQn); }}
开发者ID:GrandviewIoT,项目名称:Industrial_IoT_Projects,代码行数:71,
示例29: HAL_UART_MspInitvoid HAL_UART_MspInit(UART_HandleTypeDef* huart){ GPIO_InitTypeDef GPIO_InitStruct; if(huart->Instance==USART2) { /* USER CODE BEGIN USART2_MspInit 0 */ /* USER CODE END USART2_MspInit 0 */ /* Peripheral clock enable */ __HAL_RCC_USART2_CLK_ENABLE(); /**USART2 GPIO Configuration PA2 ------> USART2_TX PA3 ------> USART2_RX */ GPIO_InitStruct.Pin = UART_TX_Pin|UART_RX_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_PULLUP; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; GPIO_InitStruct.Alternate = GPIO_AF7_USART2; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); /* Peripheral DMA init*/ hdma_usart2_rx.Instance = DMA1_Stream5; hdma_usart2_rx.Init.Channel = DMA_CHANNEL_4; hdma_usart2_rx.Init.Direction = DMA_PERIPH_TO_MEMORY; hdma_usart2_rx.Init.PeriphInc = DMA_PINC_DISABLE; hdma_usart2_rx.Init.MemInc = DMA_MINC_ENABLE; hdma_usart2_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; hdma_usart2_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; hdma_usart2_rx.Init.Mode = DMA_NORMAL; hdma_usart2_rx.Init.Priority = DMA_PRIORITY_LOW; hdma_usart2_rx.Init.FIFOMode = DMA_FIFOMODE_DISABLE; HAL_DMA_Init(&hdma_usart2_rx); __HAL_LINKDMA(huart,hdmarx,hdma_usart2_rx); hdma_usart2_tx.Instance = DMA1_Stream6; hdma_usart2_tx.Init.Channel = DMA_CHANNEL_4; hdma_usart2_tx.Init.Direction = DMA_MEMORY_TO_PERIPH; hdma_usart2_tx.Init.PeriphInc = DMA_PINC_DISABLE; hdma_usart2_tx.Init.MemInc = DMA_MINC_ENABLE; hdma_usart2_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; hdma_usart2_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; hdma_usart2_tx.Init.Mode = DMA_NORMAL; hdma_usart2_tx.Init.Priority = DMA_PRIORITY_LOW; hdma_usart2_tx.Init.FIFOMode = DMA_FIFOMODE_DISABLE; HAL_DMA_Init(&hdma_usart2_tx); __HAL_LINKDMA(huart,hdmatx,hdma_usart2_tx); /* Peripheral interrupt init */ HAL_NVIC_SetPriority(USART2_IRQn, 4, 0); HAL_NVIC_EnableIRQ(USART2_IRQn); /* USER CODE BEGIN USART2_MspInit 1 */ /* USER CODE END USART2_MspInit 1 */ }}
开发者ID:omuzychko,项目名称:StepperHub,代码行数:62,
示例30: HAL_RTC_MspInit/** * @brief RTC MSP Initialization * This function configures the hardware resources used in this example * @param hrtc: RTC handle pointer * * @note Care must be taken when HAL_RCCEx_PeriphCLKConfig() is used to select * the RTC clock source; in this case the Backup domain will be reset in * order to modify the RTC Clock source, as consequence RTC registers (including * the backup registers) and RCC_BDCR register are set to their reset values. * * @retval None */void HAL_RTC_MspInit(RTC_HandleTypeDef *hrtc){ RCC_OscInitTypeDef RCC_OscInitStruct; RCC_PeriphCLKInitTypeDef PeriphClkInitStruct; /*##-1- Enables the PWR Clock and Enables access to the backup domain ###################################*/ /* To change the source clock of the RTC feature (LSE, LSI), You have to: - Enable the power clock using __PWR_CLK_ENABLE() - Enable write access using HAL_PWR_EnableBkUpAccess() function before to configure the RTC clock source (to be done once after reset). - Reset the Back up Domain using __HAL_RCC_BACKUPRESET_FORCE() and __HAL_RCC_BACKUPRESET_RELEASE(). - Configure the needed RTc clock source */ __PWR_CLK_ENABLE(); HAL_PWR_EnableBkUpAccess(); /*##-2- Configue LSE/LSI as RTC clock soucre ###############################*/#ifdef RTC_CLOCK_SOURCE_LSE RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSI | RCC_OSCILLATORTYPE_LSE; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; RCC_OscInitStruct.LSEState = RCC_LSE_ON; RCC_OscInitStruct.LSIState = RCC_LSI_OFF; if(HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { Error_Handler(); } PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_RTC; PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSE; if(HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK) { Error_Handler(); }#elif defined (RTC_CLOCK_SOURCE_LSI) RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSI | RCC_OSCILLATORTYPE_LSE; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; RCC_OscInitStruct.LSIState = RCC_LSI_ON; RCC_OscInitStruct.LSEState = RCC_LSE_OFF; if(HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { Error_Handler(); } PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_RTC; PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSI; if(HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK) { Error_Handler(); }#else#error Please select the RTC Clock source inside the main.h file#endif /*RTC_CLOCK_SOURCE_LSE*/ /*##-3- Enable RTC peripheral Clocks #######################################*/ /* Enable RTC Clock */ __HAL_RCC_RTC_ENABLE(); /*##-4- Configure the NVIC for RTC Tamper ###################################*/ HAL_NVIC_SetPriority(TAMP_STAMP_IRQn, 0x0F, 0); HAL_NVIC_EnableIRQ(TAMP_STAMP_IRQn);}
开发者ID:afconsult-south,项目名称:dragonfly-fcb,代码行数:74,
注:本文中的HAL_NVIC_EnableIRQ函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ HAL_NVIC_SetPriority函数代码示例 C++ HAL_NVIC_DisableIRQ函数代码示例 |