diff options
| author | guozhanxin <[email protected]> | 2019-10-30 23:50:58 +0800 |
|---|---|---|
| committer | guozhanxin <[email protected]> | 2019-10-30 23:53:13 +0800 |
| commit | 40d605584995d21d4bfa56495f10f476228204dd (patch) | |
| tree | cb05a2680465198d396638b77311cb2a35b13518 /bsp | |
| parent | 186d7cff066bc57a02f497b6a47e7d1899739b87 (diff) | |
[bsp][stm32]Enable interrupt in drive.|在驱动里使能中断,不需要在cubemx里配置中断了。
Diffstat (limited to 'bsp')
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; |
