diff --git a/Drivers/Include/Driver_UART.h b/Drivers/Include/Driver_UART.h
index c296384..fc9e08a 100644
--- a/Drivers/Include/Driver_UART.h
+++ b/Drivers/Include/Driver_UART.h
@@ -14,8 +14,7 @@ void UART_init(MyUART_Struct_Typedef * UART);
void USART1_IRQHandler(void);
void USART2_IRQHandler(void);
void USART3_IRQHandler(void);
-
-
+void UART_InitGPIO(MyUART_Struct_Typedef * UART);
diff --git a/Drivers/Sources/Driver_UART.c b/Drivers/Sources/Driver_UART.c
index b76c540..3d98d55 100644
--- a/Drivers/Sources/Driver_UART.c
+++ b/Drivers/Sources/Driver_UART.c
@@ -1,4 +1,5 @@
#include "Driver_UART.h"
+#include "Driver_GPIO.h"
char received_data1, received_data2, received_data3;
@@ -102,6 +103,40 @@ void UART_interruption (MyUART_Struct_Typedef * UART)
{
NVIC->ISER[1] |= (1<<(USART3_IRQn-32));
}
-
}
+void UART_InitGPIO(MyUART_Struct_Typedef * UART)
+{
+ if(UART->UART == USART1)
+ {
+ MyUART_Struct_Typedef UART1 = {USART1,9600};
+ MyGPIO_Struct_TypeDef PA9 = {GPIOA,9,AltOut_Ppull};
+ MyGPIO_Struct_TypeDef PA10 = {GPIOA,10,In_PullUp};
+ MyGPIO_Init (&PA9);
+ MyGPIO_Init (&PA10);
+ UART_init(&UART1);
+ }
+ else if(UART->UART == USART2) {
+ MyUART_Struct_Typedef UART2 = {USART2,9600};
+ MyGPIO_Struct_TypeDef PA2 = {GPIOA,2,AltOut_Ppull};
+ MyGPIO_Struct_TypeDef PA3 = {GPIOA,3,In_Floating};
+ MyGPIO_Init (&PA2);
+ MyGPIO_Init (&PA3);
+ UART_init(&UART2);
+ }
+ else if(UART->UART == USART3) {
+ MyUART_Struct_Typedef UART3 = {USART3,9600};
+ MyGPIO_Struct_TypeDef PA10 = {GPIOA,10,AltOut_Ppull};
+ MyGPIO_Struct_TypeDef PA11 = {GPIOA,11,In_PullUp};
+ MyGPIO_Init (&PA10);
+ MyGPIO_Init (&PA11);
+ UART_init(&UART3);
+ }
+ else {
+ return;
+ }
+
+}
+
+
+
diff --git a/GPIO_Test/GPIO_Test.uvoptx b/GPIO_Test/GPIO_Test.uvoptx
index 4548a0d..6dd6ca4 100644
--- a/GPIO_Test/GPIO_Test.uvoptx
+++ b/GPIO_Test/GPIO_Test.uvoptx
@@ -125,7 +125,7 @@
0
DLGDARM
- (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(100=-1,-1,-1,-1,0)(110=-1,-1,-1,-1,0)(111=-1,-1,-1,-1,0)(1011=-1,-1,-1,-1,0)(180=-1,-1,-1,-1,0)(120=865,485,1286,912,1)(121=-1,-1,-1,-1,0)(122=546,289,967,716,0)(123=-1,-1,-1,-1,0)(140=-1,-1,-1,-1,0)(240=-1,-1,-1,-1,0)(190=-1,-1,-1,-1,0)(200=-1,-1,-1,-1,0)(170=-1,-1,-1,-1,0)(130=911,135,1505,886,0)(131=997,343,1591,1094,0)(132=-1,-1,-1,-1,0)(133=-1,-1,-1,-1,0)(160=1131,175,1579,589,1)(161=1383,268,1831,682,0)(162=-1,-1,-1,-1,0)(210=-1,-1,-1,-1,0)(211=-1,-1,-1,-1,0)(220=-1,-1,-1,-1,0)(221=-1,-1,-1,-1,0)(230=-1,-1,-1,-1,0)(234=-1,-1,-1,-1,0)(231=-1,-1,-1,-1,0)(232=-1,-1,-1,-1,0)(233=-1,-1,-1,-1,0)(150=-1,-1,-1,-1,0)(151=-1,-1,-1,-1,0)
+ (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(100=-1,-1,-1,-1,0)(110=-1,-1,-1,-1,0)(111=-1,-1,-1,-1,0)(1011=-1,-1,-1,-1,0)(180=-1,-1,-1,-1,0)(120=1357,482,1778,909,1)(121=-1,-1,-1,-1,0)(122=546,289,967,716,0)(123=-1,-1,-1,-1,0)(140=-1,-1,-1,-1,0)(240=-1,-1,-1,-1,0)(190=-1,-1,-1,-1,0)(200=-1,-1,-1,-1,0)(170=-1,-1,-1,-1,0)(130=911,135,1505,886,0)(131=997,343,1591,1094,0)(132=-1,-1,-1,-1,0)(133=-1,-1,-1,-1,0)(160=1345,64,1793,478,1)(161=1383,268,1831,682,0)(162=-1,-1,-1,-1,0)(210=-1,-1,-1,-1,0)(211=-1,-1,-1,-1,0)(220=-1,-1,-1,-1,0)(221=-1,-1,-1,-1,0)(230=-1,-1,-1,-1,0)(234=-1,-1,-1,-1,0)(231=-1,-1,-1,-1,0)(232=-1,-1,-1,-1,0)(233=-1,-1,-1,-1,0)(150=-1,-1,-1,-1,0)(151=-1,-1,-1,-1,0)
0
@@ -147,56 +147,24 @@
0
0
- 30
- 1
- 0
+ 38
+ 0
+ 134219492
0
0
0
0
0
- 0
- .\Sources\Main.c
+ 1
+ U:\INSA\Microcontrôleur\Projet_Voilier_grp\Voilier\Drivers\Sources\Driver_UART.c
-
+ \\GPIO_Test\../Drivers/Sources/Driver_UART.c\38
1
0
- 30
- 1
- 134219668
- 0
- 0
- 0
- 0
- 0
- 1
- U:\INSA\Microcontrôleur\Projet_Voilier_grp\Voilier\GPIO_Test\Sources\Main.c
-
- \\GPIO_Test\Sources/Main.c\30
-
-
- 2
- 0
- 70
- 1
- 134219784
- 0
- 0
- 0
- 0
- 0
- 1
- U:\INSA\Microcontrôleur\Projet_Voilier_grp\Voilier\GPIO_Test\Sources\Main.c
-
- \\GPIO_Test\Sources/Main.c\70
-
-
- 3
- 0
- 71
- 1
+ 39
+ 0
0
0
0
@@ -204,7 +172,39 @@
0
0
0
- .\Sources\Main.c
+ ..\Drivers\Sources\Driver_UART.c
+
+
+
+
+ 2
+ 0
+ 54
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ ..\Drivers\Sources\Driver_UART.c
+
+
+
+
+ 3
+ 0
+ 67
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ ..\Drivers\Sources\Driver_UART.c
diff --git a/GPIO_Test/Sources/Main.c b/GPIO_Test/Sources/Main.c
index f0d3c98..8c2d4ba 100644
--- a/GPIO_Test/Sources/Main.c
+++ b/GPIO_Test/Sources/Main.c
@@ -10,26 +10,10 @@ int main (void){
//Déclaration d'une LED et d'un BP par structure GPIO
MyGPIO_Struct_TypeDef LED;
MyGPIO_Struct_TypeDef BP;
-
+ MyUART_Struct_Typedef UART;
//Déclaration d'un Timer 500 ms
MyTimer_Struct_TypeDef TIM500ms;
- //Déclaration de l'UART /
- MyUART_Struct_Typedef UART1 = {USART1,9600};
- MyUART_Struct_Typedef UART2 = {USART2,9600};
-
- //UART2
- //MyGPIO_Struct_TypeDef PA2 = {GPIOA,2,AltOut_Ppull};
- //MyGPIO_Struct_TypeDef PA3 = {GPIOA,3,In_PullUp};
- //UART1
- MyGPIO_Struct_TypeDef PA9 = {GPIOA,9,AltOut_Ppull};
- MyGPIO_Struct_TypeDef PA10 = {GPIOA,10,In_Floating};
-
-
- //MyGPIO_Init (&PA2);
- //MyGPIO_Init (&PA3);
- MyGPIO_Init (&PA9);
- MyGPIO_Init (&PA10);
//Config LED PA5
LED.GPIO_Conf = Out_Ppull;
@@ -49,6 +33,9 @@ int main (void){
TIM500ms.ARR = 5000;
MyTimer_Base_Init(&TIM500ms);
+ //InitUART
+ UART.UART = USART1;
+
/*
TIM2->DIER |= 1<< 0 ; //INTERRUPTION PERIPH
//TIM2->DIER |= TIM_DIER_UIE ;
@@ -62,17 +49,15 @@ int main (void){
- UART_init(&UART1);
- UART_init(&UART2);
//NVIC_EnableIRQ(USART1_IRQn);// Activer les interruptions
-
+ UART_InitGPIO(&UART);
// Envoyer les données
for (i = 0; i < len; i++) {
UART_send(data[i]);
}
- UART_read(data[i], &UART1);
+ UART_read(data[i], &UART);