summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorguozhanxin <[email protected]>2019-10-30 23:50:58 +0800
committerguozhanxin <[email protected]>2019-10-30 23:53:13 +0800
commit40d605584995d21d4bfa56495f10f476228204dd (patch)
treecb05a2680465198d396638b77311cb2a35b13518
parent186d7cff066bc57a02f497b6a47e7d1899739b87 (diff)
[bsp][stm32]Enable interrupt in drive.|在驱动里使能中断,不需要在cubemx里配置中断了。
-rw-r--r--bsp/stm32/libraries/HAL_Drivers/config/f1/usbd_config.h7
-rw-r--r--bsp/stm32/libraries/HAL_Drivers/config/f4/usbd_config.h4
-rw-r--r--bsp/stm32/libraries/HAL_Drivers/config/g4/usbd_config.h2
-rw-r--r--bsp/stm32/libraries/HAL_Drivers/config/h7/usbd_config.h4
-rw-r--r--bsp/stm32/libraries/HAL_Drivers/config/l4/usbd_config.h2
-rw-r--r--bsp/stm32/libraries/HAL_Drivers/drv_usbd.c10
6 files changed, 25 insertions, 4 deletions
diff --git a/bsp/stm32/libraries/HAL_Drivers/config/f1/usbd_config.h b/bsp/stm32/libraries/HAL_Drivers/config/f1/usbd_config.h
index 4ad6540896..d58b86f6d3 100644
--- a/bsp/stm32/libraries/HAL_Drivers/config/f1/usbd_config.h
+++ b/bsp/stm32/libraries/HAL_Drivers/config/f1/usbd_config.h
@@ -11,10 +11,17 @@
#ifndef __USBD_CONFIG_H__
#define __USBD_CONFIG_H__
+#define USBD_IRQ_TYPE USB_LP_CAN1_RX0_IRQn
#define USBD_IRQ_HANDLER USB_LP_CAN1_RX0_IRQHandler
#define USBD_INSTANCE USB
#define USBD_PCD_SPEED PCD_SPEED_FULL
#define USBD_PCD_PHY_MODULE PCD_PHY_EMBEDDED
+
+#ifndef BSP_USB_CONNECT_PIN
#define BSP_USB_CONNECT_PIN -1
+#endif
+#ifndef BSP_USB_PULL_UP_STATUS
+#define BSP_USB_PULL_UP_STATUS 1
+#endif
#endif
diff --git a/bsp/stm32/libraries/HAL_Drivers/config/f4/usbd_config.h b/bsp/stm32/libraries/HAL_Drivers/config/f4/usbd_config.h
index 9714ee4ac5..a6fc9a4c4d 100644
--- a/bsp/stm32/libraries/HAL_Drivers/config/f4/usbd_config.h
+++ b/bsp/stm32/libraries/HAL_Drivers/config/f4/usbd_config.h
@@ -14,9 +14,11 @@
#include <rtconfig.h>
#ifdef BSP_USBD_TYPE_HS
+#define USBD_IRQ_TYPE OTG_HS_IRQn
#define USBD_IRQ_HANDLER OTG_HS_IRQHandler
#define USBD_INSTANCE USB_OTG_HS
-#else
+#else
+#define USBD_IRQ_TYPE OTG_FS_IRQn
#define USBD_IRQ_HANDLER OTG_FS_IRQHandler
#define USBD_INSTANCE USB_OTG_FS
#endif
diff --git a/bsp/stm32/libraries/HAL_Drivers/config/g4/usbd_config.h b/bsp/stm32/libraries/HAL_Drivers/config/g4/usbd_config.h
index e30f7c11a6..a6fc9a4c4d 100644
--- a/bsp/stm32/libraries/HAL_Drivers/config/g4/usbd_config.h
+++ b/bsp/stm32/libraries/HAL_Drivers/config/g4/usbd_config.h
@@ -14,9 +14,11 @@
#include <rtconfig.h>
#ifdef BSP_USBD_TYPE_HS
+#define USBD_IRQ_TYPE OTG_HS_IRQn
#define USBD_IRQ_HANDLER OTG_HS_IRQHandler
#define USBD_INSTANCE USB_OTG_HS
#else
+#define USBD_IRQ_TYPE OTG_FS_IRQn
#define USBD_IRQ_HANDLER OTG_FS_IRQHandler
#define USBD_INSTANCE USB_OTG_FS
#endif
diff --git a/bsp/stm32/libraries/HAL_Drivers/config/h7/usbd_config.h b/bsp/stm32/libraries/HAL_Drivers/config/h7/usbd_config.h
index 9714ee4ac5..a6fc9a4c4d 100644
--- a/bsp/stm32/libraries/HAL_Drivers/config/h7/usbd_config.h
+++ b/bsp/stm32/libraries/HAL_Drivers/config/h7/usbd_config.h
@@ -14,9 +14,11 @@
#include <rtconfig.h>
#ifdef BSP_USBD_TYPE_HS
+#define USBD_IRQ_TYPE OTG_HS_IRQn
#define USBD_IRQ_HANDLER OTG_HS_IRQHandler
#define USBD_INSTANCE USB_OTG_HS
-#else
+#else
+#define USBD_IRQ_TYPE OTG_FS_IRQn
#define USBD_IRQ_HANDLER OTG_FS_IRQHandler
#define USBD_INSTANCE USB_OTG_FS
#endif
diff --git a/bsp/stm32/libraries/HAL_Drivers/config/l4/usbd_config.h b/bsp/stm32/libraries/HAL_Drivers/config/l4/usbd_config.h
index e30f7c11a6..a6fc9a4c4d 100644
--- a/bsp/stm32/libraries/HAL_Drivers/config/l4/usbd_config.h
+++ b/bsp/stm32/libraries/HAL_Drivers/config/l4/usbd_config.h
@@ -14,9 +14,11 @@
#include <rtconfig.h>
#ifdef BSP_USBD_TYPE_HS
+#define USBD_IRQ_TYPE OTG_HS_IRQn
#define USBD_IRQ_HANDLER OTG_HS_IRQHandler
#define USBD_INSTANCE USB_OTG_HS
#else
+#define USBD_IRQ_TYPE OTG_FS_IRQn
#define USBD_IRQ_HANDLER OTG_FS_IRQHandler
#define USBD_INSTANCE USB_OTG_FS
#endif
diff --git a/bsp/stm32/libraries/HAL_Drivers/drv_usbd.c b/bsp/stm32/libraries/HAL_Drivers/drv_usbd.c
index 1f40117750..79cb327ed8 100644
--- a/bsp/stm32/libraries/HAL_Drivers/drv_usbd.c
+++ b/bsp/stm32/libraries/HAL_Drivers/drv_usbd.c
@@ -99,14 +99,14 @@ void HAL_PCDEx_SetConnectionState(PCD_HandleTypeDef *hpcd, uint8_t state)
{
#if defined(SOC_SERIES_STM32F1)
rt_pin_mode(BSP_USB_CONNECT_PIN,PIN_MODE_OUTPUT);
- rt_pin_write(BSP_USB_CONNECT_PIN, PIN_HIGH);
+ rt_pin_write(BSP_USB_CONNECT_PIN, BSP_USB_PULL_UP_STATUS);
#endif
}
else
{
#if defined(SOC_SERIES_STM32F1)
rt_pin_mode(BSP_USB_CONNECT_PIN,PIN_MODE_OUTPUT);
- rt_pin_write(BSP_USB_CONNECT_PIN, PIN_LOW);
+ rt_pin_write(BSP_USB_CONNECT_PIN, !BSP_USB_PULL_UP_STATUS);
#endif
}
}
@@ -201,6 +201,9 @@ static rt_err_t _init(rt_device_t device)
#endif
/* Initialize LL Driver */
HAL_PCD_Init(pcd);
+ /* USB interrupt Init */
+ HAL_NVIC_SetPriority(USBD_IRQ_TYPE, 2, 0);
+ HAL_NVIC_EnableIRQ(USBD_IRQ_TYPE);
#if !defined(SOC_SERIES_STM32F1)
HAL_PCDEx_SetRxFiFo(pcd, 0x80);
HAL_PCDEx_SetTxFiFo(pcd, 0, 0x40);
@@ -246,6 +249,9 @@ int stm_usbd_register(void)
/* Register endpoint infomation */
_stm_udc.ep_pool = _ep_pool;
_stm_udc.ep0.id = &_ep_pool[0];
+#ifdef BSP_USBD_SPEED_HS
+ _stm_udc.device_is_hs = RT_TRUE;
+#endif
rt_device_register((rt_device_t)&_stm_udc, "usbd", 0);
rt_usb_device_init();
return RT_EOK;