DIY Logging Volt/Ampmeter
gpio.c File Reference

This file provides code for the configuration of all used GPIO pins. More...

#include "gpio.h"

Go to the source code of this file.

Functions

uint8_t getSW0 (void)
 
void setSW0 (uint8_t value)
 
uint8_t getSW1 (void)
 
void setSW1 (uint8_t value)
 
uint8_t getENCkey (void)
 
void setENCkey (uint8_t value)
 
void MX_GPIO_Init (void)
 

Variables

__IO uint8_t SW0Triggered = 0
 
__IO uint8_t SW1Triggered = 0
 
__IO uint8_t ENCkeyTriggered = 0
 

Detailed Description

This file provides code for the configuration of all used GPIO pins.

Attention

© Copyright (c) 2021 STMicroelectronics. All rights reserved.

This software component is licensed by ST under BSD 3-Clause license, the "License"; You may not use this file except in compliance with the License. You may obtain a copy of the License at: opensource.org/licenses/BSD-3-Clause

Definition in file gpio.c.

Function Documentation

◆ getENCkey()

uint8_t getENCkey ( void  )

Definition at line 61 of file gpio.c.

62 {
63  return (ENCkeyTriggered);
64 }

◆ getSW0()

uint8_t getSW0 ( void  )

Definition at line 41 of file gpio.c.

42 {
43  return (SW0Triggered);
44 }

◆ getSW1()

uint8_t getSW1 ( void  )

Definition at line 51 of file gpio.c.

52 {
53  return (SW1Triggered);
54 }

◆ MX_GPIO_Init()

void MX_GPIO_Init ( void  )

Configure pins as Analog Input Output EVENT_OUT EXTI

Definition at line 81 of file gpio.c.

82 {
83  LL_EXTI_InitTypeDef EXTI_InitStruct = {0};
84  LL_GPIO_InitTypeDef GPIO_InitStruct = {0};
85 
86  /* GPIO Ports Clock Enable */
87  LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_GPIOC);
88  LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_GPIOD);
89  LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_GPIOA);
90  LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_GPIOB);
91 
92  /**/
93  LL_GPIO_ResetOutputPin(GPIOB, LED_Pin|Buzzer_Pin);
94 
95  /**/
96  LL_GPIO_ResetOutputPin(Relay_GPIO_Port, Relay_Pin);
97 
98  /**/
100 
101  /**/
102  LL_GPIO_AF_SetEXTISource(LL_GPIO_AF_EXTI_PORTA, LL_GPIO_AF_EXTI_LINE0);
103 
104  /**/
105  LL_GPIO_AF_SetEXTISource(LL_GPIO_AF_EXTI_PORTA, LL_GPIO_AF_EXTI_LINE1);
106 
107  /**/
108  LL_GPIO_AF_SetEXTISource(LL_GPIO_AF_EXTI_PORTB, LL_GPIO_AF_EXTI_LINE5);
109 
110  /**/
111  EXTI_InitStruct.Line_0_31 = LL_EXTI_LINE_0;
112  EXTI_InitStruct.LineCommand = ENABLE;
113  EXTI_InitStruct.Mode = LL_EXTI_MODE_IT;
114  EXTI_InitStruct.Trigger = LL_EXTI_TRIGGER_FALLING;
115  LL_EXTI_Init(&EXTI_InitStruct);
116 
117  /**/
118  EXTI_InitStruct.Line_0_31 = LL_EXTI_LINE_1;
119  EXTI_InitStruct.LineCommand = ENABLE;
120  EXTI_InitStruct.Mode = LL_EXTI_MODE_IT;
121  EXTI_InitStruct.Trigger = LL_EXTI_TRIGGER_FALLING;
122  LL_EXTI_Init(&EXTI_InitStruct);
123 
124  /**/
125  EXTI_InitStruct.Line_0_31 = LL_EXTI_LINE_5;
126  EXTI_InitStruct.LineCommand = ENABLE;
127  EXTI_InitStruct.Mode = LL_EXTI_MODE_IT;
128  EXTI_InitStruct.Trigger = LL_EXTI_TRIGGER_FALLING;
129  LL_EXTI_Init(&EXTI_InitStruct);
130 
131  /**/
132  LL_GPIO_SetPinMode(SW0_GPIO_Port, SW0_Pin, LL_GPIO_MODE_FLOATING);
133 
134  /**/
135  LL_GPIO_SetPinMode(SW1_GPIO_Port, SW1_Pin, LL_GPIO_MODE_FLOATING);
136 
137  /**/
138  LL_GPIO_SetPinMode(ENC_Key_GPIO_Port, ENC_Key_Pin, LL_GPIO_MODE_FLOATING);
139 
140  /**/
141  GPIO_InitStruct.Pin = V_ENin_Pin;
142  GPIO_InitStruct.Mode = LL_GPIO_MODE_FLOATING;
143  LL_GPIO_Init(V_ENin_GPIO_Port, &GPIO_InitStruct);
144 
145  /**/
146  GPIO_InitStruct.Pin = A_ENin_Pin;
147  GPIO_InitStruct.Mode = LL_GPIO_MODE_FLOATING;
148  LL_GPIO_Init(A_ENin_GPIO_Port, &GPIO_InitStruct);
149 
150  /**/
151  GPIO_InitStruct.Pin = LED_Pin|Buzzer_Pin|UART1_3V3out_Pin|UART1_ENout_Pin
153  GPIO_InitStruct.Mode = LL_GPIO_MODE_OUTPUT;
154  GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_LOW;
155  GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
156  LL_GPIO_Init(GPIOB, &GPIO_InitStruct);
157 
158  /**/
159  GPIO_InitStruct.Pin = Relay_Pin;
160  GPIO_InitStruct.Mode = LL_GPIO_MODE_OUTPUT;
161  GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_LOW;
162  GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
163  LL_GPIO_Init(Relay_GPIO_Port, &GPIO_InitStruct);
164 
165  /* EXTI interrupt init*/
172 }

◆ setENCkey()

void setENCkey ( uint8_t  value)

Definition at line 66 of file gpio.c.

67 {
68  ENCkeyTriggered = value;
69 }

◆ setSW0()

void setSW0 ( uint8_t  value)

Definition at line 46 of file gpio.c.

47 {
48  SW0Triggered = value;
49 }

◆ setSW1()

void setSW1 ( uint8_t  value)

Definition at line 56 of file gpio.c.

57 {
58  SW1Triggered = value;
59 }

Variable Documentation

◆ ENCkeyTriggered

__IO uint8_t ENCkeyTriggered = 0

Definition at line 28 of file gpio.c.

◆ SW0Triggered

__IO uint8_t SW0Triggered = 0

Definition at line 26 of file gpio.c.

◆ SW1Triggered

__IO uint8_t SW1Triggered = 0

Definition at line 27 of file gpio.c.

SW0_GPIO_Port
#define SW0_GPIO_Port
Definition: main.h:111
Relay_Pin
#define Relay_Pin
Definition: main.h:126
NVIC_GetPriorityGrouping
#define NVIC_GetPriorityGrouping
Definition: core_armv8mbl.h:1189
SW1_GPIO_Port
#define SW1_GPIO_Port
Definition: main.h:114
EXTI1_IRQn
@ EXTI1_IRQn
Definition: stm32f103xb.h:90
V_ENin_GPIO_Port
#define V_ENin_GPIO_Port
Definition: main.h:117
NVIC_EncodePriority
__STATIC_INLINE uint32_t NVIC_EncodePriority(uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority)
Encode Priority.
Definition: core_armv8mbl.h:1496
ENABLE
@ ENABLE
Definition: stm32f1xx.h:160
EXTI9_5_IRQn
@ EXTI9_5_IRQn
Definition: stm32f103xb.h:106
UART1_DTRout_Pin
#define UART1_DTRout_Pin
Definition: main.h:133
UART1_ENout_Pin
#define UART1_ENout_Pin
Definition: main.h:131
ENC_Key_Pin
#define ENC_Key_Pin
Definition: main.h:128
Buzzer_Pin
#define Buzzer_Pin
Definition: main.h:122
A_ENin_Pin
#define A_ENin_Pin
Definition: main.h:118
ENCkeyTriggered
__IO uint8_t ENCkeyTriggered
Definition: gpio.c:28
SW1Triggered
__IO uint8_t SW1Triggered
Definition: gpio.c:27
GPIOB
#define GPIOB
Definition: stm32f103xb.h:666
SW0_Pin
#define SW0_Pin
Definition: main.h:110
LED_Pin
#define LED_Pin
Definition: main.h:120
NVIC_SetPriority
#define NVIC_SetPriority
Definition: core_armv8mbl.h:1197
Relay_GPIO_Port
#define Relay_GPIO_Port
Definition: main.h:127
UART1_3V3out_Pin
#define UART1_3V3out_Pin
Definition: main.h:124
ENC_Key_GPIO_Port
#define ENC_Key_GPIO_Port
Definition: main.h:129
V_ENin_Pin
#define V_ENin_Pin
Definition: main.h:116
A_ENin_GPIO_Port
#define A_ENin_GPIO_Port
Definition: main.h:119
NVIC_EnableIRQ
#define NVIC_EnableIRQ
Definition: core_armv8mbl.h:1190
EXTI0_IRQn
@ EXTI0_IRQn
Definition: stm32f103xb.h:89
SW1_Pin
#define SW1_Pin
Definition: main.h:113
SW0Triggered
__IO uint8_t SW0Triggered
Definition: gpio.c:26