aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Selkirk <paul@psgd.org>2016-06-13 22:38:00 -0400
committerPaul Selkirk <paul@psgd.org>2016-06-13 22:38:00 -0400
commit91db5e0c49b77c7a21a3b6d1c70b7128dcfa55a9 (patch)
tree5417350f2555f7d89bb6fa269c384bf5734a233a
parentb7f9d44fe7a35c33bd6a5ee7db1cbd9a53e21ee2 (diff)
Change gpio setups from macros to inline functions.
-rw-r--r--stm-init.c4
-rw-r--r--stm-init.h43
2 files changed, 27 insertions, 20 deletions
diff --git a/stm-init.c b/stm-init.c
index d2d8d65..0016e13 100644
--- a/stm-init.c
+++ b/stm-init.c
@@ -157,8 +157,6 @@ static void MX_USART2_UART_Init(void)
/* Configure General Purpose Input/Output pins */
static void MX_GPIO_Init(void)
{
- GPIO_InitTypeDef GPIO_InitStruct;
-
/* GPIO Ports Clock Enable */
LED_CLK_ENABLE();
@@ -217,7 +215,7 @@ void MX_I2C2_Init(void)
hi2c_rtc.Init.NoStretchMode = I2C_NOSTRETCH_DISABLED;
if (HAL_I2C_Init(&hi2c_rtc) != HAL_OK) {
- Error_Handler();
+ Error_Handler();
}
}
#endif
diff --git a/stm-init.h b/stm-init.h
index 252485d..2c3ec99 100644
--- a/stm-init.h
+++ b/stm-init.h
@@ -37,24 +37,33 @@
#include "stm32f4xx_hal.h"
-/* Macros used to make GPIO pin setup (in stm-init.c) easier */
-#define gpio_output(output_port, output_pins, output_level) \
- /* Configure GPIO pin Output Level */ \
- HAL_GPIO_WritePin(output_port, output_pins, output_level); \
- /* Configure pin as output */ \
- GPIO_InitStruct.Pin = output_pins; \
- GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; \
- GPIO_InitStruct.Pull = GPIO_NOPULL; \
- GPIO_InitStruct.Speed = GPIO_SPEED_LOW; \
- HAL_GPIO_Init(output_port, &GPIO_InitStruct)
-
-#define gpio_input(input_port, input_pin, input_pull) \
- GPIO_InitStruct.Pin = input_pin; \
- GPIO_InitStruct.Mode = GPIO_MODE_INPUT; \
- GPIO_InitStruct.Pull = input_pull; \
- GPIO_InitStruct.Speed = GPIO_SPEED_LOW; \
- HAL_GPIO_Init(input_port, &GPIO_InitStruct)
+/* Functions used to make GPIO pin setup (in stm-init.c) easier */
+inline void gpio_output(GPIO_TypeDef* output_port, uint16_t output_pins, GPIO_PinState output_level)
+{
+ GPIO_InitTypeDef GPIO_InitStruct;
+
+ /* Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(output_port, output_pins, output_level);
+
+ /* Configure pin as output */
+ GPIO_InitStruct.Pin = output_pins;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_LOW;
+ HAL_GPIO_Init(output_port, &GPIO_InitStruct);
+}
+
+inline void gpio_input(GPIO_TypeDef* input_port, uint16_t input_pin, GPIO_PinState input_pull)
+{
+ GPIO_InitTypeDef GPIO_InitStruct;
+
+ GPIO_InitStruct.Pin = input_pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+ GPIO_InitStruct.Pull = input_pull;
+ GPIO_InitStruct.Speed = GPIO_SPEED_LOW;
+ HAL_GPIO_Init(input_port, &GPIO_InitStruct);
+}
extern void stm_init(void);
extern void Error_Handler(void);