Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: STM32F103C8T6_WebUSBDFU STM32F103C8T6_USBDFU STM32F103C8T6_USBDFU dfu_usb_stm32f103
Fork of USBDevice_STM32F103 by
Revision 62:23cb405e1ee5, committed 2015-06-21
- Comitter:
- va009039
- Date:
- Sun Jun 21 11:53:49 2015 +0900
- Parent:
- 61:5f4f01a06669
- Child:
- 63:05e2f2e4dc3e
- Commit message:
- add NUCLEO-F103RB.
Changed in this revision
--- a/USBDevice/USBEndpoints.h Sat Jun 20 11:54:36 2015 +0900 +++ b/USBDevice/USBEndpoints.h Sun Jun 21 11:53:49 2015 +0900 @@ -45,7 +45,7 @@ #include "USBEndpoints_KL25Z.h" #elif defined (TARGET_STM32F4) #include "USBEndpoints_STM32F4.h" -#elif defined(TARGET_STM32L1) +#elif defined(TARGET_STM32L1)||defined(TARGET_STM32F1) #include "USBEndpoints_STM32L1.h" #elif defined (TARGET_RZ_A1H) #include "USBEndpoints_RZ_A1H.h"
--- a/USBDevice/USBHAL.h Sat Jun 20 11:54:36 2015 +0900
+++ b/USBDevice/USBHAL.h Sun Jun 21 11:53:49 2015 +0900
@@ -74,7 +74,7 @@
virtual bool EP2_IN_callback(){return false;};
virtual bool EP3_OUT_callback(){return false;};
virtual bool EP3_IN_callback(){return false;};
-#if !defined(TARGET_STM32F4) || defined(TARGET_STM32L1)
+#if !defined(TARGET_STM32F4)||defined(TARGET_STM32L1)||defined(TARGET_STM32F1)
virtual bool EP4_OUT_callback(){return false;};
virtual bool EP4_IN_callback(){return false;};
#if !(defined(TARGET_LPC11UXX) || defined(TARGET_LPC11U6X) || defined(TARGET_LPC1347) || defined(TARGET_LPC1549))
@@ -117,7 +117,7 @@
#endif
-#if defined(TARGET_STM32L1)
+#if defined(TARGET_STM32L1)||defined(TARGET_STM32F1)
public: // HAL_PCD
void SetupStageCallback();
void DataInStageCallback(uint8_t epnum);
--- a/USBDevice/USBHAL_STM32L1.cpp Sat Jun 20 11:54:36 2015 +0900
+++ b/USBDevice/USBHAL_STM32L1.cpp Sun Jun 21 11:53:49 2015 +0900
@@ -16,19 +16,33 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-#if defined(TARGET_STM32L1)
+#if defined(TARGET_STM32L1)||defined(TARGET_STM32F1)
#include "USBDevice.h"
+#if defined(TARGET_STM32F1)
+#define USB_LP_IRQn USB_LP_CAN1_RX0_IRQn
+const uint8_t PCD_EP_TYPE_CTRL = EP_TYPE_CTRL;
+const uint8_t PCD_EP_TYPE_INTR = EP_TYPE_INTR;
+const uint8_t PCD_EP_TYPE_BULK = EP_TYPE_BULK;
+const uint8_t PCD_EP_TYPE_ISOC = EP_TYPE_ISOC;
+
+#elif defined(TARGET_STM32L1)
+void HAL_PCDEx_SetConnectionState(PCD_HandleTypeDef *hpcd, uint8_t state) {
+ __SYSCFG_CLK_ENABLE(); // for SYSCFG_PMC_USB_PU
+ if (state == 1) {
+ __HAL_SYSCFG_USBPULLUP_ENABLE();
+ } else {
+ __HAL_SYSCFG_USBPULLUP_DISABLE();
+ }
+}
+#endif
+
static PCD_HandleTypeDef hpcd_USB_FS;
static volatile int epComplete = 0;
USBHAL * USBHAL::instance;
uint32_t USBHAL::endpointReadcore(uint8_t endpoint, uint8_t *buffer) {return 0;}
-extern "C" void USB_LP_IRQHandler(void) {
- HAL_PCD_IRQHandler(&hpcd_USB_FS);
-}
-
USBHAL::USBHAL(void) {
hpcd_USB_FS.pData = this;
hpcd_USB_FS.Instance = USB;
@@ -39,37 +53,27 @@
hpcd_USB_FS.Init.Sof_enable = DISABLE;
hpcd_USB_FS.Init.low_power_enable = DISABLE;
hpcd_USB_FS.Init.battery_charging_enable = DISABLE;
+ NVIC_SetVector(USB_LP_IRQn, (uint32_t)&_usbisr);
HAL_PCD_Init(&hpcd_USB_FS);
+ HAL_PCD_Start(&hpcd_USB_FS);
}
void HAL_PCD_MspInit(PCD_HandleTypeDef* hpcd) {
- __SYSCFG_CLK_ENABLE(); // for SYSCFG_PMC_USB_PU
__USB_CLK_ENABLE();
HAL_NVIC_SetPriority(USB_LP_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(USB_LP_IRQn);
}
void HAL_PCD_MspDeInit(PCD_HandleTypeDef* hpcd) {
- MBED_ASSERT(hpcd->Instance == USB);
__USB_CLK_DISABLE(); // Peripheral clock disable
HAL_NVIC_DisableIRQ(USB_LP_IRQn); // Peripheral interrupt Deinit
}
-void HAL_PCDEx_SetConnectionState(PCD_HandleTypeDef *hpcd, uint8_t state) {
- MBED_ASSERT(READ_BIT(RCC->APB2ENR, RCC_APB2ENR_SYSCFGEN));
- if (state == 1) {
- __HAL_SYSCFG_USBPULLUP_ENABLE();
- } else {
- __HAL_SYSCFG_USBPULLUP_DISABLE();
- }
-}
-
USBHAL::~USBHAL(void) {
HAL_PCD_DeInit(&hpcd_USB_FS);
}
void USBHAL::connect(void) {
- MBED_ASSERT(hpcd_USB_FS.Instance == USB);
HAL_PCD_DevConnect(&hpcd_USB_FS);
}
@@ -283,7 +287,11 @@
}
void USBHAL::remoteWakeup(void) {}
-void USBHAL::_usbisr(void) {}
+
+void USBHAL::_usbisr(void) {
+ HAL_PCD_IRQHandler(&hpcd_USB_FS);
+}
+
void USBHAL::usbisr(void) {}
void USBHAL::SetupStageCallback() {
