提交 40d60558 编写于 作者: G guozhanxin

[bsp][stm32]Enable interrupt in drive.|在驱动里使能中断,不需要在cubemx里配置中断了。

上级 186d7cff
...@@ -11,10 +11,17 @@ ...@@ -11,10 +11,17 @@
#ifndef __USBD_CONFIG_H__ #ifndef __USBD_CONFIG_H__
#define __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_IRQ_HANDLER USB_LP_CAN1_RX0_IRQHandler
#define USBD_INSTANCE USB #define USBD_INSTANCE USB
#define USBD_PCD_SPEED PCD_SPEED_FULL #define USBD_PCD_SPEED PCD_SPEED_FULL
#define USBD_PCD_PHY_MODULE PCD_PHY_EMBEDDED #define USBD_PCD_PHY_MODULE PCD_PHY_EMBEDDED
#ifndef BSP_USB_CONNECT_PIN
#define BSP_USB_CONNECT_PIN -1 #define BSP_USB_CONNECT_PIN -1
#endif
#ifndef BSP_USB_PULL_UP_STATUS
#define BSP_USB_PULL_UP_STATUS 1
#endif
#endif #endif
...@@ -14,9 +14,11 @@ ...@@ -14,9 +14,11 @@
#include <rtconfig.h> #include <rtconfig.h>
#ifdef BSP_USBD_TYPE_HS #ifdef BSP_USBD_TYPE_HS
#define USBD_IRQ_TYPE OTG_HS_IRQn
#define USBD_IRQ_HANDLER OTG_HS_IRQHandler #define USBD_IRQ_HANDLER OTG_HS_IRQHandler
#define USBD_INSTANCE USB_OTG_HS #define USBD_INSTANCE USB_OTG_HS
#else #else
#define USBD_IRQ_TYPE OTG_FS_IRQn
#define USBD_IRQ_HANDLER OTG_FS_IRQHandler #define USBD_IRQ_HANDLER OTG_FS_IRQHandler
#define USBD_INSTANCE USB_OTG_FS #define USBD_INSTANCE USB_OTG_FS
#endif #endif
......
...@@ -14,9 +14,11 @@ ...@@ -14,9 +14,11 @@
#include <rtconfig.h> #include <rtconfig.h>
#ifdef BSP_USBD_TYPE_HS #ifdef BSP_USBD_TYPE_HS
#define USBD_IRQ_TYPE OTG_HS_IRQn
#define USBD_IRQ_HANDLER OTG_HS_IRQHandler #define USBD_IRQ_HANDLER OTG_HS_IRQHandler
#define USBD_INSTANCE USB_OTG_HS #define USBD_INSTANCE USB_OTG_HS
#else #else
#define USBD_IRQ_TYPE OTG_FS_IRQn
#define USBD_IRQ_HANDLER OTG_FS_IRQHandler #define USBD_IRQ_HANDLER OTG_FS_IRQHandler
#define USBD_INSTANCE USB_OTG_FS #define USBD_INSTANCE USB_OTG_FS
#endif #endif
......
...@@ -14,9 +14,11 @@ ...@@ -14,9 +14,11 @@
#include <rtconfig.h> #include <rtconfig.h>
#ifdef BSP_USBD_TYPE_HS #ifdef BSP_USBD_TYPE_HS
#define USBD_IRQ_TYPE OTG_HS_IRQn
#define USBD_IRQ_HANDLER OTG_HS_IRQHandler #define USBD_IRQ_HANDLER OTG_HS_IRQHandler
#define USBD_INSTANCE USB_OTG_HS #define USBD_INSTANCE USB_OTG_HS
#else #else
#define USBD_IRQ_TYPE OTG_FS_IRQn
#define USBD_IRQ_HANDLER OTG_FS_IRQHandler #define USBD_IRQ_HANDLER OTG_FS_IRQHandler
#define USBD_INSTANCE USB_OTG_FS #define USBD_INSTANCE USB_OTG_FS
#endif #endif
......
...@@ -14,9 +14,11 @@ ...@@ -14,9 +14,11 @@
#include <rtconfig.h> #include <rtconfig.h>
#ifdef BSP_USBD_TYPE_HS #ifdef BSP_USBD_TYPE_HS
#define USBD_IRQ_TYPE OTG_HS_IRQn
#define USBD_IRQ_HANDLER OTG_HS_IRQHandler #define USBD_IRQ_HANDLER OTG_HS_IRQHandler
#define USBD_INSTANCE USB_OTG_HS #define USBD_INSTANCE USB_OTG_HS
#else #else
#define USBD_IRQ_TYPE OTG_FS_IRQn
#define USBD_IRQ_HANDLER OTG_FS_IRQHandler #define USBD_IRQ_HANDLER OTG_FS_IRQHandler
#define USBD_INSTANCE USB_OTG_FS #define USBD_INSTANCE USB_OTG_FS
#endif #endif
......
...@@ -99,14 +99,14 @@ void HAL_PCDEx_SetConnectionState(PCD_HandleTypeDef *hpcd, uint8_t state) ...@@ -99,14 +99,14 @@ void HAL_PCDEx_SetConnectionState(PCD_HandleTypeDef *hpcd, uint8_t state)
{ {
#if defined(SOC_SERIES_STM32F1) #if defined(SOC_SERIES_STM32F1)
rt_pin_mode(BSP_USB_CONNECT_PIN,PIN_MODE_OUTPUT); 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 #endif
} }
else else
{ {
#if defined(SOC_SERIES_STM32F1) #if defined(SOC_SERIES_STM32F1)
rt_pin_mode(BSP_USB_CONNECT_PIN,PIN_MODE_OUTPUT); 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 #endif
} }
} }
...@@ -201,6 +201,9 @@ static rt_err_t _init(rt_device_t device) ...@@ -201,6 +201,9 @@ static rt_err_t _init(rt_device_t device)
#endif #endif
/* Initialize LL Driver */ /* Initialize LL Driver */
HAL_PCD_Init(pcd); 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) #if !defined(SOC_SERIES_STM32F1)
HAL_PCDEx_SetRxFiFo(pcd, 0x80); HAL_PCDEx_SetRxFiFo(pcd, 0x80);
HAL_PCDEx_SetTxFiFo(pcd, 0, 0x40); HAL_PCDEx_SetTxFiFo(pcd, 0, 0x40);
...@@ -246,6 +249,9 @@ int stm_usbd_register(void) ...@@ -246,6 +249,9 @@ int stm_usbd_register(void)
/* Register endpoint infomation */ /* Register endpoint infomation */
_stm_udc.ep_pool = _ep_pool; _stm_udc.ep_pool = _ep_pool;
_stm_udc.ep0.id = &_ep_pool[0]; _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_device_register((rt_device_t)&_stm_udc, "usbd", 0);
rt_usb_device_init(); rt_usb_device_init();
return RT_EOK; return RT_EOK;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册