From 175f14d8d96be06b781de94c8cfb55c5abab6f47 Mon Sep 17 00:00:00 2001 From: AceVest Date: Sat, 1 Jun 2019 15:15:14 +0800 Subject: [PATCH] F103HAL gpio output open drain mode --- learn/stm32/F103HAL/F103HAL.elf.launch | 1 + learn/stm32/F103HAL/Src/System.c | 32 ++++++++++++++++++++++++++ learn/stm32/F103HAL/Src/main.c | 9 +++++--- 3 files changed, 39 insertions(+), 3 deletions(-) create mode 100644 learn/stm32/F103HAL/Src/System.c diff --git a/learn/stm32/F103HAL/F103HAL.elf.launch b/learn/stm32/F103HAL/F103HAL.elf.launch index 925476b..27e5676 100644 --- a/learn/stm32/F103HAL/F103HAL.elf.launch +++ b/learn/stm32/F103HAL/F103HAL.elf.launch @@ -65,5 +65,6 @@ + diff --git a/learn/stm32/F103HAL/Src/System.c b/learn/stm32/F103HAL/Src/System.c new file mode 100644 index 0000000..3abf807 --- /dev/null +++ b/learn/stm32/F103HAL/Src/System.c @@ -0,0 +1,32 @@ +/* + * System.c + * + * Created on: Jun 1, 2019 + * Author: ace + */ + + +#include "stm32f1xx_hal.h" + +void SystemPreInit() { + __HAL_RCC_GPIOB_CLK_ENABLE(); +} + + +#define LED_Pin GPIO_PIN_6 +#define LED_GPIO_Port GPIOB + +void SystemSetup() { + GPIO_InitTypeDef GPIO_InitStruct; + GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD; + GPIO_InitStruct.Pin = LED_Pin; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; + + HAL_GPIO_Init(LED_GPIO_Port, &GPIO_InitStruct); +} + +void SystemLoop() { + HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin); + HAL_Delay(1000); +} diff --git a/learn/stm32/F103HAL/Src/main.c b/learn/stm32/F103HAL/Src/main.c index d211515..e6d0a59 100644 --- a/learn/stm32/F103HAL/Src/main.c +++ b/learn/stm32/F103HAL/Src/main.c @@ -56,7 +56,9 @@ void SystemClock_Config(void); /* Private user code ---------------------------------------------------------*/ /* USER CODE BEGIN 0 */ - +void SystemPreInit(); +void SystemSetup(); +void SystemLoop(); /* USER CODE END 0 */ /** @@ -83,19 +85,20 @@ int main(void) SystemClock_Config(); /* USER CODE BEGIN SysInit */ - + SystemPreInit(); /* USER CODE END SysInit */ /* Initialize all configured peripherals */ MX_GPIO_Init(); /* USER CODE BEGIN 2 */ - + SystemSetup(); /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { + SystemLoop(); /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ -- 2.44.0