diff options
| author | Bernard Xiong <[email protected]> | 2019-09-15 09:37:47 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2019-09-15 09:37:47 +0800 |
| commit | 20d9ac459ed5e7bcae207bff583597858ec5bbbd (patch) | |
| tree | 905c183e39fd55da79085ced91efdafbbbe7dd1a /bsp/stm32/libraries | |
| parent | 6db1bd45162043a6366bac0422e2c463479f374f (diff) | |
| parent | 60bda424eb3b659338e757d701b7e70716243680 (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.h | 24 | ||||
| -rw-r--r-- | bsp/stm32/libraries/HAL_Drivers/config/f4/pwm_config.h | 11 | ||||
| -rw-r--r-- | bsp/stm32/libraries/HAL_Drivers/config/f4/uart_config.h | 70 | ||||
| -rw-r--r-- | bsp/stm32/libraries/HAL_Drivers/drv_pwm.c | 6 | ||||
| -rw-r--r-- | bsp/stm32/libraries/HAL_Drivers/drv_usart.c | 91 |
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) { |
