Test usb connection
Dependencies: BufferedSerial MODSERIAL mbed
You can find more infos in this notebook: HERE
main.cpp
- Committer:
- edodm85
- Date:
- 2016-08-20
- Revision:
- 0:6da981eb59da
File content as of revision 0:6da981eb59da:
#define Modserial #include "mbed.h" #ifdef Modserial #include "MODSERIAL.h" #else //#include "BufferedSerial.h" #endif DigitalOut led1(LED1); DigitalOut led4(LED4); #ifdef Modserial MODSERIAL pc(USBTX,USBRX); #else RawSerial pc(USBTX,USBRX); #endif bool new_send = false; void parse_cmd(int sizeCMD); char bufferRX[50]; int i = 0; // interrupt call #ifdef Modserial void rxCallback(MODSERIAL_IRQ_INFO *q) { new_send = true; } #else void rxCallback() { led1 = 1; char test = pc.getc(); if(test != '\n') { bufferRX[i] = test; i++; }else { new_send = true; } led1 = 0; return; } #endif int main() { pc.baud(9600); pc.printf("SystemCoreClock: %dMHz\r\n", SystemCoreClock/1000000); // print the clock frequency led4 = 0; int n = 0; #ifdef Modserial pc.attach(&rxCallback); #else pc.attach(&rxCallback, Serial::RxIrq); #endif while(1) { #ifdef Modserial if(new_send) { int i = 0; led1 = 1; while(pc.readable()) { bufferRX[i] = pc.getc(); i++; } parse_cmd(i); led1 = 0; } #else if(new_send) { parse_cmd(i); memset(bufferRX, 0, sizeof(bufferRX)); new_send = false; i = 0; } #endif wait_ms(50); n++; if(n == 10) { led4 = !led4; n = 0; } } } void parse_cmd(int sizeCMD) { new_send = false; pc.printf("bufferRX: %s\r\n", bufferRX); if(strcmp("ciao", bufferRX) == 0) { pc.printf("Test OK\r\n"); } memset(bufferRX, 0, sizeof(bufferRX)); }