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