Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Flipper-Zero/STM32CubeWB.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'Projects/P-NUCLEO-WB55.Nucleo/Applications/BLE_LLD/BLE_LLD_Chat/Core/Src/gpio_lld.c')
-rw-r--r--Projects/P-NUCLEO-WB55.Nucleo/Applications/BLE_LLD/BLE_LLD_Chat/Core/Src/gpio_lld.c132
1 files changed, 132 insertions, 0 deletions
diff --git a/Projects/P-NUCLEO-WB55.Nucleo/Applications/BLE_LLD/BLE_LLD_Chat/Core/Src/gpio_lld.c b/Projects/P-NUCLEO-WB55.Nucleo/Applications/BLE_LLD/BLE_LLD_Chat/Core/Src/gpio_lld.c
new file mode 100644
index 000000000..1ccb7b42f
--- /dev/null
+++ b/Projects/P-NUCLEO-WB55.Nucleo/Applications/BLE_LLD/BLE_LLD_Chat/Core/Src/gpio_lld.c
@@ -0,0 +1,132 @@
+/**
+ ******************************************************************************
+ * @file gpio_lld.c
+ * @author MCD Application Team
+ * @version $VERSION$
+ * @date $DATE$
+ * @brief This file contains the init of all the GPIOs used by LLD tests.
+ * It is to be used on both M0 and M4.
+ ******************************************************************************
+ * @attention
+ *
+ * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * 3. Neither the name of STMicroelectronics nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ ******************************************************************************
+ */
+
+/* Includes ------------------------------------------------------------------*/
+// Be carrefull with the .h included as this file must be compilable on both M0 and M4 environments
+#include "app_conf.h"
+#include "gpio_lld.h"
+
+/* Set PHY GPIO_HARD_FAULT to '1' */
+void gpio_lld_phy_gpioHardFault_up(void) {
+ HAL_GPIO_WritePin(GPIO_HARD_FAULT_PORT, GPIO_HARD_FAULT_PIN, GPIO_PIN_SET);
+}
+
+/* Set PHY GPIO_HARD_FAULT to '0' */
+void gpio_lld_phy_gpioHardFault_down(void) {
+ HAL_GPIO_WritePin(GPIO_HARD_FAULT_PORT, GPIO_HARD_FAULT_PIN, GPIO_PIN_RESET);
+}
+
+/* Initialize GPIOs used by USART */
+void gpio_lld_usart_init(void)
+{
+ GPIO_InitTypeDef gpioinitstruct = {0};
+
+ /*** Configure the GPIOs ***/
+ /* Enable GPIO clock */
+ USART_TX_GPIO_CLK_ENABLE();
+ USART_RX_GPIO_CLK_ENABLE();
+
+ /* Common configuration to Tx and Rx */
+ gpioinitstruct.Mode = GPIO_MODE_AF_PP;
+ gpioinitstruct.Pull = GPIO_NOPULL;
+ gpioinitstruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
+
+ /* Configure USART Tx */
+ gpioinitstruct.Pin = USART_TX_PIN;
+ gpioinitstruct.Alternate = USART_TX_AF;
+ HAL_GPIO_Init(USART_TX_GPIO_PORT, &gpioinitstruct);
+
+ /* Configure USART Rx */
+ gpioinitstruct.Pin = USART_RX_PIN;
+ gpioinitstruct.Alternate = USART_RX_AF;
+ HAL_GPIO_Init(USART_RX_GPIO_PORT, &gpioinitstruct);
+
+ /*** Configure the USART peripheral ***/
+ /* Enable USART clock */
+ USART_CLK_ENABLE();
+}
+
+/* De-initialize GPIOs used by USART */
+void gpio_lld_usart_deInit(void) {
+ HAL_GPIO_DeInit(USART_TX_GPIO_PORT, USART_TX_PIN);
+ HAL_GPIO_DeInit(USART_RX_GPIO_PORT, USART_RX_PIN);
+ /* Do not disable clocks as they could be used by others GPIOs and it seems
+ to not need power in STOP mode */
+}
+
+/* Initialize GPIOs used by LPUART */
+void gpio_lld_lpuart_init(void)
+{
+ GPIO_InitTypeDef gpioinitstruct = {0};
+
+ /*** Configure the GPIOs ***/
+ /* Enable GPIO clock */
+ LPUART_TX_GPIO_CLK_ENABLE();
+ LPUART_RX_GPIO_CLK_ENABLE();
+
+ /* Common configuration to Tx and Rx */
+ gpioinitstruct.Mode = GPIO_MODE_AF_PP;
+ gpioinitstruct.Pull = GPIO_NOPULL;
+ gpioinitstruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
+
+ /* Configure LPUART Tx */
+ gpioinitstruct.Pin = LPUART_TX_PIN;
+ gpioinitstruct.Alternate = LPUART_TX_AF;
+ HAL_GPIO_Init(LPUART_TX_GPIO_PORT, &gpioinitstruct);
+
+ /* Configure LPUART Rx */
+ gpioinitstruct.Pin = LPUART_RX_PIN;
+ gpioinitstruct.Alternate = LPUART_RX_AF;
+ HAL_GPIO_Init(LPUART_RX_GPIO_PORT, &gpioinitstruct);
+
+ /*** Configure the LPUART peripheral ***/
+ /* Enable LPUART clock */
+ LPUART_CLK_ENABLE();
+}
+
+/* De-initialize GPIOs used by LPUART */
+void gpio_lld_lpuart_deInit(void) {
+ HAL_GPIO_DeInit(LPUART_TX_GPIO_PORT, LPUART_TX_PIN);
+ HAL_GPIO_DeInit(LPUART_RX_GPIO_PORT, LPUART_RX_PIN);
+ /* Do not disable clocks as they could be used by others GPIOs and it seems
+ to not need power in STOP mode */
+}
+
+
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/