From e7644c744e127b49e1695e57a10e71a32c097699 Mon Sep 17 00:00:00 2001 From: ReservedField Date: Mon, 24 Oct 2016 17:42:41 +0200 Subject: [PATCH] Filter out unprintables in USB debug example --- example/usbdebug/main.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/example/usbdebug/main.c b/example/usbdebug/main.c index f8fcd41..e84c349 100644 --- a/example/usbdebug/main.c +++ b/example/usbdebug/main.c @@ -18,6 +18,7 @@ */ #include +#include #include #include #include @@ -34,7 +35,7 @@ int main() { char tmpBuf[9]; - uint8_t recvBuf[64], bufPos, i; + uint8_t recvBuf[64], bufPos, i, tmp; uint16_t readSize; // The virtual COM port is not initialized by default. @@ -67,8 +68,12 @@ int main() { // Data is available // We read 1 byte at a time because I'm too lazy // to write a real ring buffer for this example - readSize = USB_VirtualCOM_Read(recvBuf + bufPos, 1); - bufPos = (bufPos + readSize) % 64; + readSize = USB_VirtualCOM_Read(&tmp, 1); + // Filter out control characters for display + if(readSize && isprint(tmp)) { + recvBuf[bufPos] = tmp; + bufPos = (bufPos + readSize) % 64; + } } // Display the received data