From 15e88d4c3177e85a3cce1933be174d11bc026c1b Mon Sep 17 00:00:00 2001
From: Sergi Hernandez Juan <shernand@iri.upc.edu>
Date: Thu, 2 Apr 2020 23:08:21 +0200
Subject: [PATCH] Used the UART data structures instead of the USART ones.

---
 CMakeLists.txt               |  2 +-
 include/stm32f1xx_hal_conf.h |  4 ++--
 src/darwin_dyn_master.c      | 17 ++++++++---------
 src/darwin_dyn_master2.c     | 17 ++++++++---------
 src/darwin_dyn_slave.c       | 17 ++++++++---------
 stm32_libraries              |  2 +-
 6 files changed, 28 insertions(+), 31 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9881f75..d94e59e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -80,7 +80,7 @@ set(hal_sources ./stm32_hal/f1/src/stm32f1xx_hal_gpio.c
                 ./stm32_hal/f1/src/stm32f1xx_hal_tim.c
                 ./stm32_hal/f1/src/stm32f1xx_hal_tim_ex.c
                 ./stm32_hal/f1/src/stm32f1xx_hal_dma.c
-                ./stm32_hal/f1/src/stm32f1xx_hal_usart.c
+                ./stm32_hal/f1/src/stm32f1xx_hal_uart.c
                 ./stm32_hal/f1/src/stm32f1xx_hal_flash.c
                 ./stm32_hal/f1/src/stm32f1xx_hal_flash_ex.c
                 ./stm32_hal/f1/src/stm32f1xx_hal_adc.c
diff --git a/include/stm32f1xx_hal_conf.h b/include/stm32f1xx_hal_conf.h
index 5d51226..2625df4 100755
--- a/include/stm32f1xx_hal_conf.h
+++ b/include/stm32f1xx_hal_conf.h
@@ -80,8 +80,8 @@
 #define HAL_SPI_MODULE_ENABLED
 //#define HAL_SRAM_MODULE_ENABLED
 #define HAL_TIM_MODULE_ENABLED
-//#define HAL_UART_MODULE_ENABLED
-#define HAL_USART_MODULE_ENABLED
+#define HAL_UART_MODULE_ENABLED
+//#define HAL_USART_MODULE_ENABLED
 //#define HAL_WWDG_MODULE_ENABLED
 
 /* ########################## Oscillator Values adaptation ####################*/
diff --git a/src/darwin_dyn_master.c b/src/darwin_dyn_master.c
index b092593..7acc317 100755
--- a/src/darwin_dyn_master.c
+++ b/src/darwin_dyn_master.c
@@ -36,8 +36,8 @@ void darwin_dyn_master_set_tx_mode(void)
 TDynamixelMaster *darwin_dyn_master_init(void)
 {
   GPIO_InitTypeDef GPIO_InitStructure;
-  TUSART_IRQ_Priorities priorities;
-  USART_InitTypeDef Init;
+  TUART_IRQ_Priorities priorities;
+  UART_InitTypeDef Init;
 
   // initialize timer structure
   time_init(&darwin_dyn_master_timer,darwin_time_get_counts_per_us(),darwin_time_get_counts);
@@ -67,13 +67,12 @@ TDynamixelMaster *darwin_dyn_master_init(void)
   /* initialize the comm object */
   comm_init(&darwin_dyn_master_comm,0x01,&darwin_dyn_master_timer);
   Init.BaudRate     = 1000000; //57600;
-  Init.WordLength   = USART_WORDLENGTH_8B;
-  Init.StopBits     = USART_STOPBITS_1;
-  Init.Parity       = USART_PARITY_NONE;
-  Init.Mode         = USART_MODE_TX_RX;
-  Init.CLKPolarity  = USART_POLARITY_LOW;
-  Init.CLKPhase     = USART_PHASE_1EDGE;
-  Init.CLKLastBit   = USART_LASTBIT_DISABLE;
+  Init.WordLength   = UART_WORDLENGTH_8B;
+  Init.StopBits     = UART_STOPBITS_1;
+  Init.Parity       = UART_PARITY_NONE;
+  Init.Mode         = UART_MODE_TX_RX;
+  Init.HwFlowCtl    = UART_HWCONTROL_NONE;
+  Init.OverSampling = UART_OVERSAMPLING_16;
   
   priorities.irq_priority=0;
   priorities.irq_subpriority=1;
diff --git a/src/darwin_dyn_master2.c b/src/darwin_dyn_master2.c
index 82392fb..f43c49d 100755
--- a/src/darwin_dyn_master2.c
+++ b/src/darwin_dyn_master2.c
@@ -37,8 +37,8 @@ void darwin_dyn_master2_set_tx_mode(void)
 TDynamixelMaster *darwin_dyn_master2_init(void)
 {
   GPIO_InitTypeDef GPIO_InitStructure;
-  TUSART_IRQ_Priorities priorities;
-  USART_InitTypeDef Init;
+  TUART_IRQ_Priorities priorities;
+  UART_InitTypeDef Init;
 
   // initialize timer structure
   time_init(&darwin_dyn_master2_timer,darwin_time_get_counts_per_us(),darwin_time_get_counts);
@@ -61,13 +61,12 @@ TDynamixelMaster *darwin_dyn_master2_init(void)
   /* initialize the comm object */
   comm_init(&darwin_dyn_master2_comm,0x01,&darwin_dyn_master2_timer);
   Init.BaudRate     = 1000000; //57600;
-  Init.WordLength   = USART_WORDLENGTH_8B;
-  Init.StopBits     = USART_STOPBITS_1;
-  Init.Parity       = USART_PARITY_NONE;
-  Init.Mode         = USART_MODE_TX_RX;
-  Init.CLKPolarity  = USART_POLARITY_LOW;
-  Init.CLKPhase     = USART_PHASE_1EDGE;
-  Init.CLKLastBit   = USART_LASTBIT_DISABLE;
+  Init.WordLength   = UART_WORDLENGTH_8B;
+  Init.StopBits     = UART_STOPBITS_1;
+  Init.Parity       = UART_PARITY_NONE;
+  Init.Mode         = UART_MODE_TX_RX;
+  Init.HwFlowCtl    = UART_HWCONTROL_NONE;
+  Init.OverSampling = UART_OVERSAMPLING_16;
   
   priorities.irq_priority=0;
   priorities.irq_subpriority=2;
diff --git a/src/darwin_dyn_slave.c b/src/darwin_dyn_slave.c
index 855bccf..a355883 100755
--- a/src/darwin_dyn_slave.c
+++ b/src/darwin_dyn_slave.c
@@ -9,7 +9,7 @@ TDynamixelSlave darwin_dyn_slave;
 TDynamixelSlaveDevice darwin_dyn_slave_device;
 TTime darwin_dyn_slave_timer;
 TComm darwin_dyn_slave_comm;
-USART_InitTypeDef darwin_comm_init;
+UART_InitTypeDef darwin_comm_init;
 TScheduler *darwin_dyn_slave_sch;
 
 /* memory module */
@@ -40,7 +40,7 @@ void darwin_on_ping(void)
 // public functions
 uint8_t darwin_dyn_slave_init(TMemory **memory,TScheduler *scheduler)
 {
-  TUSART_IRQ_Priorities priorities;
+  TUART_IRQ_Priorities priorities;
   uint8_t status;
 
   // initialize timer structure
@@ -49,13 +49,12 @@ uint8_t darwin_dyn_slave_init(TMemory **memory,TScheduler *scheduler)
   /* initialize the comm object */
   comm_init(&darwin_dyn_slave_comm,0x01,&darwin_dyn_slave_timer);
   darwin_comm_init.BaudRate     = 2000000/(DEFAULT_BAUDRATE+1);
-  darwin_comm_init.WordLength   = USART_WORDLENGTH_8B;
-  darwin_comm_init.StopBits     = USART_STOPBITS_1;
-  darwin_comm_init.Parity       = USART_PARITY_NONE;
-  darwin_comm_init.Mode         = USART_MODE_TX_RX;
-  darwin_comm_init.CLKPolarity  = USART_POLARITY_LOW;
-  darwin_comm_init.CLKPhase     = USART_PHASE_1EDGE;
-  darwin_comm_init.CLKLastBit   = USART_LASTBIT_DISABLE;
+  darwin_comm_init.WordLength   = UART_WORDLENGTH_8B;
+  darwin_comm_init.StopBits     = UART_STOPBITS_1;
+  darwin_comm_init.Parity       = UART_PARITY_NONE;
+  darwin_comm_init.Mode         = UART_MODE_TX_RX;
+  darwin_comm_init.HwFlowCtl    = UART_HWCONTROL_NONE;
+  darwin_comm_init.OverSampling = UART_OVERSAMPLING_16;
   
   priorities.irq_priority=0;
   priorities.irq_subpriority=0;
diff --git a/stm32_libraries b/stm32_libraries
index c3575a6..cbc6cc1 160000
--- a/stm32_libraries
+++ b/stm32_libraries
@@ -1 +1 @@
-Subproject commit c3575a6117c3a0bdac5d242d89eba6fa264c3938
+Subproject commit cbc6cc15187483ea809552e03aa23ef3df004439
-- 
GitLab