USBDevice with support for STM32F3

Fork of F042K6_USBDevice by Norimasa Okamoto

Revision:
75:a394ea726048
Parent:
71:b17ecdbfb0ce
--- a/USBDevice/USBHAL_STM32L1.cpp	Wed Oct 03 21:41:29 2018 +0000
+++ b/USBDevice/USBHAL_STM32L1.cpp	Thu Oct 11 11:12:35 2018 -0400
@@ -83,13 +83,13 @@
 }
 
 void HAL_PCD_MspInit(PCD_HandleTypeDef* hpcd) {
-    __USB_CLK_ENABLE();
+    __HAL_RCC_USB_CLK_ENABLE();
     HAL_NVIC_SetPriority(USB_LP_IRQn, 0, 0);
 }
 
 void HAL_PCD_MspDeInit(PCD_HandleTypeDef* hpcd) {
     HAL_NVIC_DisableIRQ(USB_LP_IRQn); // Peripheral interrupt Deinit
-    __USB_CLK_DISABLE(); // Peripheral clock disable
+    __HAL_RCC_USB_CLK_DISABLE(); // Peripheral clock disable
 }
 
 USBHAL::~USBHAL(void) {
@@ -367,11 +367,16 @@
 }
 
 void USBHAL::ResetCallback() {
+    suspendStateChanged(0);
     PktBufArea.reset();
     realiseEndpoint(EP0IN, MAX_PACKET_SIZE_EP0, 0);
     realiseEndpoint(EP0OUT, MAX_PACKET_SIZE_EP0, 0);
 }
 
+void USBHAL::SuspendCallback() {
+    suspendStateChanged(1);
+}
+
 void USBHAL::SOFCallback() {
     SOF(hpcd_USB_FS.Instance->FNR & USB_FNR_FN);
 }
@@ -397,6 +402,7 @@
 }
 
 void HAL_PCD_SuspendCallback(PCD_HandleTypeDef *hpcd) {
+    reinterpret_cast<USBHAL*>(hpcd->pData)->SuspendCallback();
     if (hpcd->Init.low_power_enable) {
         SCB->SCR |= (uint32_t)((uint32_t)(SCB_SCR_SLEEPDEEP_Msk | SCB_SCR_SLEEPONEXIT_Msk));
     }