-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathBSP_GPIO.c
72 lines (60 loc) · 3.45 KB
/
BSP_GPIO.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
/*
* PARIKSHIT STUDENT SATELLITE TEAM
* MANIPAL INSTITUTE OF TECHNOLOGY
* FILE: BSP_GPIO.c
* TYPE: BOARD SUPPORT PACKAGE (SOURCE)
* MCU: STM32L431CC
* DEVELOPING SUB-SYSTEM: ON-BOARD DATA HANDLING SUB-SYSTEM
* DEVELOPER: KRISHNA BIRLA
*/
#include "BSP_GPIO.h"
void GPIOx_Configure(uint32_t GPIO_Pin_x,
uint32_t GPIO_Mode_x,
uint32_t GPIO_Speed_x,
uint32_t GPIO_Pull_x,
uint32_t GPIO_AFx_x,
GPIO_TypeDef* GPIOx,
GPIO_InitTypeDef* GPIO_Struct)
{
GPIO_Struct->Pin = GPIO_Pin_x;
GPIO_Struct->Mode = GPIO_Mode_x;
GPIO_Struct->Pull = GPIO_Pull_x;
GPIO_Struct->Speed = GPIO_Speed_x;
GPIO_Struct->Alternate = GPIO_AFx_x;
HAL_GPIO_Init(GPIOx, GPIO_Struct);
}
void InitializeGPIO()
{
GPIOx_Configure(GPIO_PIN_2 | GPIO_PIN_7, GPIO_MODE_OUTPUT_PP, GPIO_SPEED_FREQ_HIGH, GPIO_PULLDOWN, (uint32_t)0x00000000, GPIOA, &GPIO_CMTMOD_Struct_M13);
GPIOx_Configure(GPIO_PIN_2, GPIO_MODE_OUTPUT_PP, GPIO_SPEED_FREQ_HIGH, GPIO_PULLDOWN, (uint32_t)0x00000000, GPIOB, &GPIO_CMTMOD_Struct_M2);
GPIOx_Configure(GPIO_PIN_4, GPIO_MODE_OUTPUT_PP, GPIO_SPEED_FREQ_HIGH, GPIO_PULLDOWN, (uint32_t)0x00000000, GPIOA, &GPIO_BRKMOD_Struct_M1);
GPIOx_Configure(GPIO_PIN_1 | GPIO_PIN_0, GPIO_MODE_OUTPUT_PP, GPIO_SPEED_FREQ_HIGH, GPIO_PULLDOWN, (uint32_t)0x00000000, GPIOB, &GPIO_BRKMOD_Struct_M23);
GPIOx_Configure(GPIO_PIN_9 | GPIO_PIN_10, GPIO_MODE_AF_OD, GPIO_SPEED_FREQ_HIGH, GPIO_PULLUP, GPIO_AF4_I2C1, GPIOA, &GPIO_I2C1_Struct);
GPIOx_Configure(GPIO_PIN_13 | GPIO_PIN_14, GPIO_MODE_AF_OD, GPIO_SPEED_FREQ_HIGH, GPIO_PULLUP, GPIO_AF4_I2C2, GPIOB, &GPIO_I2C2_Struct);
GPIOx_Configure(GPIO_PIN_3, GPIO_MODE_AF_PP, GPIO_SPEED_FREQ_VERY_HIGH, GPIO_PULLDOWN, GPIO_AF14_TIM15, GPIOA, &GPIO_IC_Struct_M1);
GPIOx_Configure(GPIO_PIN_8, GPIO_MODE_AF_PP, GPIO_SPEED_FREQ_VERY_HIGH, GPIO_PULLDOWN, GPIO_AF1_TIM1, GPIOA, &GPIO_IC_Struct_M2);
GPIOx_Configure(GPIO_PIN_6, GPIO_MODE_AF_PP, GPIO_SPEED_FREQ_VERY_HIGH, GPIO_PULLDOWN, GPIO_AF14_TIM16, GPIOA, &GPIO_IC_Struct_M3);
GPIOx_Configure(GPIO_PIN_1 | GPIO_PIN_5, GPIO_MODE_AF_PP, GPIO_SPEED_FREQ_VERY_HIGH, GPIO_PULLDOWN, GPIO_AF1_TIM2, GPIOA, &GPIO_OC_Struct_M13);
GPIOx_Configure(GPIO_PIN_10, GPIO_MODE_AF_PP, GPIO_SPEED_FREQ_VERY_HIGH, GPIO_PULLDOWN, GPIO_AF1_TIM2, GPIOB, &GPIO_OC_Struct_M2);
GPIOx_Configure(GPIO_PIN_11, GPIO_MODE_OUTPUT_PP, GPIO_SPEED_FREQ_HIGH, GPIO_PULLUP, (uint32_t)0x00000000, GPIOA, &GPIO_OCPC_Struct_ON1);
GPIOx_Configure(GPIO_PIN_5 | GPIO_PIN_7 | GPIO_PIN_15 | GPIO_PIN_11, GPIO_MODE_OUTPUT_PP, GPIO_SPEED_FREQ_HIGH, GPIO_PULLUP, (uint32_t)0x00000000, GPIOB, &GPIO_OCPC_Struct_ON2345);
GPIOx_Configure(GPIO_PIN_13, GPIO_MODE_OUTPUT_PP, GPIO_SPEED_FREQ_HIGH, GPIO_PULLUP, (uint32_t)0x00000000, GPIOC, &GPIO_OCPC_Struct_ON6);
GPIOx_Configure(GPIO_PIN_12 | GPIO_PIN_0, GPIO_MODE_OUTPUT_PP, GPIO_SPEED_FREQ_HIGH, GPIO_PULLUP, (uint32_t)0x00000000, GPIOA, &GPIO_OCPC_Struct_FAULT14);
GPIOx_Configure(GPIO_PIN_6 | GPIO_PIN_8 | GPIO_PIN_12 | GPIO_PIN_9, GPIO_MODE_OUTPUT_PP, GPIO_SPEED_FREQ_HIGH, GPIO_PULLUP, (uint32_t)0x00000000, GPIOB, &GPIO_OCPC_Struct_FAULT2356);
}
GPIO_PinState GPIO_Read(GPIO_TypeDef* GPIOx,
uint32_t GPIO_Pin_x)
{
return(HAL_GPIO_ReadPin(GPIOx, GPIO_Pin_x));
}
void GPIO_Write(GPIO_TypeDef* GPIOx,
uint32_t GPIO_Pin_x,
GPIO_PinState PinState)
{
HAL_GPIO_WritePin(GPIOx, GPIO_Pin_x, PinState);
}
void GPIO_Toggle(GPIO_TypeDef* GPIOx,
uint32_t GPIO_Pin_x)
{
HAL_GPIO_TogglePin(GPIOx, GPIO_Pin_x);
}