Merge pull request #4199 from adbridge/usb_prs

USB: bus reset for KL25Z fix, USBSerial update
pull/3886/merge
Anna Bridge 2017-04-21 14:15:04 +01:00 committed by GitHub
commit 49802765a9
5 changed files with 19 additions and 0 deletions

View File

@ -455,6 +455,9 @@ void USBHAL::usbisr(void) {
USB0->ERREN = 0xFF; // enable error interrupt sources USB0->ERREN = 0xFF; // enable error interrupt sources
USB0->ADDR = 0x00; // set default address USB0->ADDR = 0x00; // set default address
// reset bus for USBDevice layer
busReset();
return; return;
} }

View File

@ -38,6 +38,10 @@ USBCDC::USBCDC(uint16_t vendor_id, uint16_t product_id, uint16_t product_release
USBDevice::connect(connect_blocking); USBDevice::connect(connect_blocking);
} }
void USBCDC::USBCallback_busReset(void) {
terminal_connected = false;
};
bool USBCDC::USBCallback_request(void) { bool USBCDC::USBCallback_request(void) {
/* Called in ISR context */ /* Called in ISR context */

View File

@ -116,6 +116,7 @@ protected:
virtual bool USBCallback_request(); virtual bool USBCallback_request();
virtual void USBCallback_requestCompleted(uint8_t *buf, uint32_t length); virtual void USBCallback_requestCompleted(uint8_t *buf, uint32_t length);
virtual bool USBCallback_setConfiguration(uint8_t configuration); virtual bool USBCallback_setConfiguration(uint8_t configuration);
virtual void USBCallback_busReset(void);
volatile bool terminal_connected; volatile bool terminal_connected;
}; };

View File

@ -66,3 +66,7 @@ bool USBSerial::EPBULK_OUT_callback() {
uint8_t USBSerial::available() { uint8_t USBSerial::available() {
return buf.available(); return buf.available();
} }
bool USBSerial::connected() {
return terminal_connected;
}

View File

@ -83,6 +83,13 @@ public:
*/ */
uint8_t available(); uint8_t available();
/**
* Check if the terminal is connected.
*
* @returns connection status
*/
bool connected();
/** Determine if there is a character available to read /** Determine if there is a character available to read
* *
* @returns * @returns