summaryrefslogtreecommitdiff
path: root/bsp/stm32/libraries
diff options
context:
space:
mode:
authorBernard Xiong <[email protected]>2019-09-15 09:37:47 +0800
committerGitHub <[email protected]>2019-09-15 09:37:47 +0800
commit20d9ac459ed5e7bcae207bff583597858ec5bbbd (patch)
tree905c183e39fd55da79085ced91efdafbbbe7dd1a /bsp/stm32/libraries
parent6db1bd45162043a6366bac0422e2c463479f374f (diff)
parent60bda424eb3b659338e757d701b7e70716243680 (diff)
Merge pull request #3054 from a1012112796/writing_zzc_add_bsp_robomaster_a
[bsp][stm32] 更新stm32f427-robomaster-a外设驱动配置
Diffstat (limited to 'bsp/stm32/libraries')
-rw-r--r--bsp/stm32/libraries/HAL_Drivers/config/f4/dma_config.h24
-rw-r--r--bsp/stm32/libraries/HAL_Drivers/config/f4/pwm_config.h11
-rw-r--r--bsp/stm32/libraries/HAL_Drivers/config/f4/uart_config.h70
-rw-r--r--bsp/stm32/libraries/HAL_Drivers/drv_pwm.c6
-rw-r--r--bsp/stm32/libraries/HAL_Drivers/drv_usart.c91
5 files changed, 200 insertions, 2 deletions
diff --git a/bsp/stm32/libraries/HAL_Drivers/config/f4/dma_config.h b/bsp/stm32/libraries/HAL_Drivers/config/f4/dma_config.h
index 86a2c9380b..46411c5441 100644
--- a/bsp/stm32/libraries/HAL_Drivers/config/f4/dma_config.h
+++ b/bsp/stm32/libraries/HAL_Drivers/config/f4/dma_config.h
@@ -31,6 +31,12 @@ extern "C" {
#define UART5_RX_DMA_INSTANCE DMA1_Stream0
#define UART5_RX_DMA_CHANNEL DMA_CHANNEL_4
#define UART5_RX_DMA_IRQ DMA1_Stream0_IRQn
+#elif defined(BSP_UART8_TX_USING_DMA) && !defined(UART8_TX_DMA_INSTANCE)
+#define UART8_DMA_TX_IRQHandler DMA1_Stream0_IRQHandler
+#define UART8_TX_DMA_RCC RCC_AHB1ENR_DMA1EN
+#define UART8_TX_DMA_INSTANCE DMA1_Stream0
+#define UART8_TX_DMA_CHANNEL DMA_CHANNEL_5
+#define UART8_TX_DMA_IRQ DMA1_Stream0_IRQn
#endif
/* DMA1 stream1 */
@@ -40,6 +46,12 @@ extern "C" {
#define UART3_RX_DMA_INSTANCE DMA1_Stream1
#define UART3_RX_DMA_CHANNEL DMA_CHANNEL_4
#define UART3_RX_DMA_IRQ DMA1_Stream1_IRQn
+#elif defined(BSP_UART7_RX_USING_DMA) && !defined(UART7_RX_DMA_INSTANCE)
+#define UART7_DMA_RX_IRQHandler DMA1_Stream1_IRQHandler
+#define UART7_RX_DMA_RCC RCC_AHB1ENR_DMA1EN
+#define UART7_RX_DMA_INSTANCE DMA1_Stream1
+#define UART7_RX_DMA_CHANNEL DMA_CHANNEL_5
+#define UART7_RX_DMA_IRQ DMA1_Stream1_IRQn
#endif
/* DMA1 stream2 */
@@ -70,6 +82,12 @@ extern "C" {
#define UART3_TX_DMA_INSTANCE DMA1_Stream3
#define UART3_TX_DMA_CHANNEL DMA_CHANNEL_4
#define UART3_TX_DMA_IRQ DMA1_Stream3_IRQn
+#elif defined(BSP_UART7_TX_USING_DMA) && !defined(UART7_TX_DMA_INSTANCE)
+#define UART7_DMA_RX_IRQHandler DMA1_Stream3_IRQHandler
+#define UART7_RX_DMA_RCC RCC_AHB1ENR_DMA1EN
+#define UART7_RX_DMA_INSTANCE DMA1_Stream3
+#define UART7_RX_DMA_CHANNEL DMA_CHANNEL_5
+#define UART7_RX_DMA_IRQ DMA1_Stream3_IRQn
#endif
/* DMA1 stream4 */
@@ -109,6 +127,12 @@ extern "C" {
#define UART2_TX_DMA_INSTANCE DMA1_Stream6
#define UART2_TX_DMA_CHANNEL DMA_CHANNEL_4
#define UART2_TX_DMA_IRQ DMA1_Stream6_IRQn
+#elif defined(BSP_UART8_RX_USING_DMA) && !defined(UART8_RX_DMA_INSTANCE)
+#define UART8_DMA_RX_IRQHandler DMA1_Stream6_IRQHandler
+#define UART8_RX_DMA_RCC RCC_AHB1ENR_DMA1EN
+#define UART8_RX_DMA_INSTANCE DMA1_Stream6
+#define UART8_RX_DMA_CHANNEL DMA_CHANNEL_5
+#define UART8_RX_DMA_IRQ DMA1_Stream6_IRQn
#endif
/* DMA1 stream7 */
diff --git a/bsp/stm32/libraries/HAL_Drivers/config/f4/pwm_config.h b/bsp/stm32/libraries/HAL_Drivers/config/f4/pwm_config.h
index 1a5575de0c..14d4aa2aff 100644
--- a/bsp/stm32/libraries/HAL_Drivers/config/f4/pwm_config.h
+++ b/bsp/stm32/libraries/HAL_Drivers/config/f4/pwm_config.h
@@ -61,6 +61,17 @@ extern "C" {
#endif /* PWM5_CONFIG */
#endif /* BSP_USING_PWM5 */
+#ifdef BSP_USING_PWM12
+#ifndef PWM12_CONFIG
+#define PWM12_CONFIG \
+ { \
+ .tim_handle.Instance = TIM12, \
+ .name = "pwm12", \
+ .channel = 0 \
+ }
+#endif /* PWM12_CONFIG */
+#endif /* BSP_USING_PWM12 */
+
#ifdef __cplusplus
}
#endif
diff --git a/bsp/stm32/libraries/HAL_Drivers/config/f4/uart_config.h b/bsp/stm32/libraries/HAL_Drivers/config/f4/uart_config.h
index 6d8655fc2e..e42b5a1a9a 100644
--- a/bsp/stm32/libraries/HAL_Drivers/config/f4/uart_config.h
+++ b/bsp/stm32/libraries/HAL_Drivers/config/f4/uart_config.h
@@ -228,6 +228,76 @@ extern "C" {
#endif /* BSP_UART6_TX_USING_DMA */
#endif /* BSP_USING_UART6 */
+#if defined(BSP_USING_UART7)
+#ifndef UART7_CONFIG
+#define UART7_CONFIG \
+ { \
+ .name = "uart7", \
+ .Instance = UART7, \
+ .irq_type = UART7_IRQn, \
+ }
+#endif /* UART7_CONFIG */
+
+#if defined(BSP_UART7_RX_USING_DMA)
+#ifndef UART7_DMA_RX_CONFIG
+#define UART7_DMA_RX_CONFIG \
+ { \
+ .Instance = UART7_RX_DMA_INSTANCE, \
+ .channel = UART7_RX_DMA_CHANNEL, \
+ .dma_rcc = UART7_RX_DMA_RCC, \
+ .dma_irq = UART7_RX_DMA_IRQ, \
+ }
+#endif /* UART7_DMA_RX_CONFIG */
+#endif /* BSP_UART7_RX_USING_DMA */
+
+#if defined(BSP_UART7_TX_USING_DMA)
+#ifndef UART7_DMA_TX_CONFIG
+#define UART7_DMA_TX_CONFIG \
+ { \
+ .Instance = UART7_TX_DMA_INSTANCE, \
+ .channel = UART7_TX_DMA_CHANNEL, \
+ .dma_rcc = UART7_TX_DMA_RCC, \
+ .dma_irq = UART7_TX_DMA_IRQ, \
+ }
+#endif /* UART7_DMA_TX_CONFIG */
+#endif /* BSP_UART7_TX_USING_DMA */
+#endif /* BSP_USING_UART7 */
+
+#if defined(BSP_USING_UART8)
+#ifndef UART8_CONFIG
+#define UART8_CONFIG \
+ { \
+ .name = "uart8", \
+ .Instance = UART8, \
+ .irq_type = UART8_IRQn, \
+ }
+#endif /* UART8_CONFIG */
+
+#if defined(BSP_UART8_RX_USING_DMA)
+#ifndef UART8_DMA_RX_CONFIG
+#define UART8_DMA_RX_CONFIG \
+ { \
+ .Instance = UART8_RX_DMA_INSTANCE, \
+ .channel = UART8_RX_DMA_CHANNEL, \
+ .dma_rcc = UART8_RX_DMA_RCC, \
+ .dma_irq = UART8_RX_DMA_IRQ, \
+ }
+#endif /* UART8_DMA_RX_CONFIG */
+#endif /* BSP_UART8_RX_USING_DMA */
+
+#if defined(BSP_UART8_TX_USING_DMA)
+#ifndef UART8_DMA_TX_CONFIG
+#define UART8_DMA_TX_CONFIG \
+ { \
+ .Instance = UART8_TX_DMA_INSTANCE, \
+ .channel = UART8_TX_DMA_CHANNEL, \
+ .dma_rcc = UART8_TX_DMA_RCC, \
+ .dma_irq = UART8_TX_DMA_IRQ, \
+ }
+#endif /* UART8_DMA_TX_CONFIG */
+#endif /* BSP_UART8_TX_USING_DMA */
+#endif /* BSP_USING_UART8 */
+
#ifdef __cplusplus
}
#endif
diff --git a/bsp/stm32/libraries/HAL_Drivers/drv_pwm.c b/bsp/stm32/libraries/HAL_Drivers/drv_pwm.c
index 247c8f88fe..ef89018eca 100644
--- a/bsp/stm32/libraries/HAL_Drivers/drv_pwm.c
+++ b/bsp/stm32/libraries/HAL_Drivers/drv_pwm.c
@@ -520,6 +520,12 @@ static void pwm_get_channel(void)
#ifdef BSP_USING_PWM9_CH4
stm32_pwm_obj[PWM9_INDEX].channel |= 1 << 3;
#endif
+#ifdef BSP_USING_PWM12_CH1
+ stm32_pwm_obj[PWM12_INDEX].channel |= 1 << 0;
+#endif
+#ifdef BSP_USING_PWM12_CH2
+ stm32_pwm_obj[PWM12_INDEX].channel |= 1 << 1;
+#endif
}
static int stm32_pwm_init(void)
diff --git a/bsp/stm32/libraries/HAL_Drivers/drv_usart.c b/bsp/stm32/libraries/HAL_Drivers/drv_usart.c
index caf5dfac0a..a52b497721 100644
--- a/bsp/stm32/libraries/HAL_Drivers/drv_usart.c
+++ b/bsp/stm32/libraries/HAL_Drivers/drv_usart.c
@@ -18,8 +18,9 @@
#define LOG_TAG "drv.usart"
#include <drv_log.h>
-#if !defined(BSP_USING_UART1) && !defined(BSP_USING_UART2) && !defined(BSP_USING_UART3) \
- && !defined(BSP_USING_UART4) && !defined(BSP_USING_UART5) && !defined(BSP_USING_UART6) && !defined(BSP_USING_LPUART1)
+#if !defined(BSP_USING_UART1) && !defined(BSP_USING_UART2) && !defined(BSP_USING_UART3) && \
+ !defined(BSP_USING_UART4) && !defined(BSP_USING_UART5) && !defined(BSP_USING_UART6) && \
+ !defined(BSP_USING_UART7) && !defined(BSP_USING_UART8) && !defined(BSP_USING_LPUART1)
#error "Please define at least one BSP_USING_UARTx"
/* this driver can be disabled at menuconfig → RT-Thread Components → Device Drivers */
#endif
@@ -48,6 +49,12 @@ enum
#ifdef BSP_USING_UART6
UART6_INDEX,
#endif
+#ifdef BSP_USING_UART7
+ UART7_INDEX,
+#endif
+#ifdef BSP_USING_UART8
+ UART8_INDEX,
+#endif
#ifdef BSP_USING_LPUART1
LPUART1_INDEX,
#endif
@@ -73,6 +80,12 @@ static struct stm32_uart_config uart_config[] =
#ifdef BSP_USING_UART6
UART6_CONFIG,
#endif
+#ifdef BSP_USING_UART7
+ UART7_CONFIG,
+#endif
+#ifdef BSP_USING_UART8
+ UART8_CONFIG,
+#endif
#ifdef BSP_USING_LPUART1
LPUART1_CONFIG,
#endif
@@ -606,6 +619,80 @@ void UART6_DMA_TX_IRQHandler(void)
#endif /* defined(RT_SERIAL_USING_DMA) && defined(BSP_UART6_TX_USING_DMA) */
#endif /* BSP_USING_UART6*/
+#if defined(BSP_USING_UART7)
+void UART7_IRQHandler(void)
+{
+ /* enter interrupt */
+ rt_interrupt_enter();
+
+ uart_isr(&(uart_obj[UART7_INDEX].serial));
+
+ /* leave interrupt */
+ rt_interrupt_leave();
+}
+#if defined(RT_SERIAL_USING_DMA) && defined(BSP_UART7_RX_USING_DMA)
+void UART7_DMA_RX_IRQHandler(void)
+{
+ /* enter interrupt */
+ rt_interrupt_enter();
+
+ HAL_DMA_IRQHandler(&uart_obj[UART7_INDEX].dma_rx.handle);
+
+ /* leave interrupt */
+ rt_interrupt_leave();
+}
+#endif /* defined(RT_SERIAL_USING_DMA) && defined(BSP_UART7_RX_USING_DMA) */
+#if defined(RT_SERIAL_USING_DMA) && defined(BSP_UART7_TX_USING_DMA)
+void UART7_DMA_TX_IRQHandler(void)
+{
+ /* enter interrupt */
+ rt_interrupt_enter();
+
+ HAL_DMA_IRQHandler(&uart_obj[UART7_INDEX].dma_tx.handle);
+
+ /* leave interrupt */
+ rt_interrupt_leave();
+}
+#endif /* defined(RT_SERIAL_USING_DMA) && defined(BSP_UART7_TX_USING_DMA) */
+#endif /* BSP_USING_UART7*/
+
+#if defined(BSP_USING_UART8)
+void UART8_IRQHandler(void)
+{
+ /* enter interrupt */
+ rt_interrupt_enter();
+
+ uart_isr(&(uart_obj[UART8_INDEX].serial));
+
+ /* leave interrupt */
+ rt_interrupt_leave();
+}
+#if defined(RT_SERIAL_USING_DMA) && defined(BSP_UART8_RX_USING_DMA)
+void UART8_DMA_RX_IRQHandler(void)
+{
+ /* enter interrupt */
+ rt_interrupt_enter();
+
+ HAL_DMA_IRQHandler(&uart_obj[UART8_INDEX].dma_rx.handle);
+
+ /* leave interrupt */
+ rt_interrupt_leave();
+}
+#endif /* defined(RT_SERIAL_USING_DMA) && defined(BSP_UART8_RX_USING_DMA) */
+#if defined(RT_SERIAL_USING_DMA) && defined(BSP_UART8_TX_USING_DMA)
+void UART8_DMA_TX_IRQHandler(void)
+{
+ /* enter interrupt */
+ rt_interrupt_enter();
+
+ HAL_DMA_IRQHandler(&uart_obj[UART8_INDEX].dma_tx.handle);
+
+ /* leave interrupt */
+ rt_interrupt_leave();
+}
+#endif /* defined(RT_SERIAL_USING_DMA) && defined(BSP_UART8_TX_USING_DMA) */
+#endif /* BSP_USING_UART8*/
+
#if defined(BSP_USING_LPUART1)
void LPUART1_IRQHandler(void)
{