Merge branch 'Avoid_USB_init_twice' of https://github.com/hanyazou/Arduino_STM32 into hanyazou-Avoid_USB_init_twice
This commit is contained in:
commit
1e88fcfc61
|
@ -55,6 +55,7 @@ static void ifaceSetupHook(unsigned, void*);
|
||||||
|
|
||||||
#define USB_TIMEOUT 50
|
#define USB_TIMEOUT 50
|
||||||
|
|
||||||
|
bool USBSerial::_hasBegun = false;
|
||||||
USBSerial::USBSerial(void) {
|
USBSerial::USBSerial(void) {
|
||||||
#if !BOARD_HAVE_SERIALUSB
|
#if !BOARD_HAVE_SERIALUSB
|
||||||
ASSERT(0);
|
ASSERT(0);
|
||||||
|
@ -62,6 +63,9 @@ USBSerial::USBSerial(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void USBSerial::begin(void) {
|
void USBSerial::begin(void) {
|
||||||
|
if (_hasBegun)
|
||||||
|
return;
|
||||||
|
_hasBegun = true;
|
||||||
#if BOARD_HAVE_SERIALUSB
|
#if BOARD_HAVE_SERIALUSB
|
||||||
usb_cdcacm_enable(BOARD_USB_DISC_DEV, BOARD_USB_DISC_BIT);
|
usb_cdcacm_enable(BOARD_USB_DISC_DEV, BOARD_USB_DISC_BIT);
|
||||||
usb_cdcacm_set_hooks(USB_CDCACM_HOOK_RX, rxHook);
|
usb_cdcacm_set_hooks(USB_CDCACM_HOOK_RX, rxHook);
|
||||||
|
@ -90,6 +94,7 @@ void USBSerial::end(void) {
|
||||||
usb_cdcacm_disable(BOARD_USB_DISC_DEV, BOARD_USB_DISC_BIT);
|
usb_cdcacm_disable(BOARD_USB_DISC_DEV, BOARD_USB_DISC_BIT);
|
||||||
usb_cdcacm_remove_hooks(USB_CDCACM_HOOK_RX | USB_CDCACM_HOOK_IFACE_SETUP);
|
usb_cdcacm_remove_hooks(USB_CDCACM_HOOK_RX | USB_CDCACM_HOOK_IFACE_SETUP);
|
||||||
#endif
|
#endif
|
||||||
|
_hasBegun = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t USBSerial::write(uint8 ch) {
|
size_t USBSerial::write(uint8 ch) {
|
||||||
|
|
|
@ -71,6 +71,9 @@ public:
|
||||||
uint8 getDTR();
|
uint8 getDTR();
|
||||||
uint8 isConnected();
|
uint8 isConnected();
|
||||||
uint8 pending();
|
uint8 pending();
|
||||||
|
|
||||||
|
protected:
|
||||||
|
static bool _hasBegun;
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef SERIAL_USB
|
#ifdef SERIAL_USB
|
||||||
|
|
Loading…
Reference in New Issue