Several examples run on only mbed-os5.13.0 (not 5.14.0)

Dependencies:   BD_SD_DISCO_F769NI BSP_DISCO_F769NI LCD_DISCO_F769NI TS_DISCO_F769NI USBHost_F769NI

Committer:
kenjiArai
Date:
Wed Aug 07 05:39:01 2019 +0000
Revision:
3:35ac9ee7d2d6
Child:
4:0f4affc00183
1st trial revision (Not finalized yet)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kenjiArai 3:35ac9ee7d2d6 1 // Original
kenjiArai 3:35ac9ee7d2d6 2 // https://os.mbed.com/handbook/USBHostSerial
kenjiArai 3:35ac9ee7d2d6 3 //
kenjiArai 3:35ac9ee7d2d6 4 // Modified by K.Arai
kenjiArai 3:35ac9ee7d2d6 5 // July 25th, 2019
kenjiArai 3:35ac9ee7d2d6 6 //
kenjiArai 3:35ac9ee7d2d6 7
kenjiArai 3:35ac9ee7d2d6 8 #include "select_program.h"
kenjiArai 3:35ac9ee7d2d6 9 //#define EXAMPLE_6_USBHOST_SERIAL
kenjiArai 3:35ac9ee7d2d6 10 #ifdef EXAMPLE_6_USBHOST_SERIAL
kenjiArai 3:35ac9ee7d2d6 11
kenjiArai 3:35ac9ee7d2d6 12 // Include --------------------------------------------------------------------
kenjiArai 3:35ac9ee7d2d6 13 #include "mbed.h"
kenjiArai 3:35ac9ee7d2d6 14 #include "USBHostSerial.h"
kenjiArai 3:35ac9ee7d2d6 15
kenjiArai 3:35ac9ee7d2d6 16 // Definition -----------------------------------------------------------------
kenjiArai 3:35ac9ee7d2d6 17
kenjiArai 3:35ac9ee7d2d6 18
kenjiArai 3:35ac9ee7d2d6 19 // Constructor ----------------------------------------------------------------
kenjiArai 3:35ac9ee7d2d6 20 DigitalOut led(LED1);
kenjiArai 3:35ac9ee7d2d6 21 Serial pc(USBTX, USBRX, 115200);
kenjiArai 3:35ac9ee7d2d6 22
kenjiArai 3:35ac9ee7d2d6 23
kenjiArai 3:35ac9ee7d2d6 24 // RAM ------------------------------------------------------------------------
kenjiArai 3:35ac9ee7d2d6 25
kenjiArai 3:35ac9ee7d2d6 26 // ROM / Constant data --------------------------------------------------------
kenjiArai 3:35ac9ee7d2d6 27
kenjiArai 3:35ac9ee7d2d6 28 // Function prototypes --------------------------------------------------------
kenjiArai 3:35ac9ee7d2d6 29 static void serial_task(void const *args);
kenjiArai 3:35ac9ee7d2d6 30
kenjiArai 3:35ac9ee7d2d6 31 //------------------------------------------------------------------------------
kenjiArai 3:35ac9ee7d2d6 32 // Control Program
kenjiArai 3:35ac9ee7d2d6 33 //------------------------------------------------------------------------------
kenjiArai 3:35ac9ee7d2d6 34 osThreadDef(serial_task, osPriorityNormal, 4096);
kenjiArai 3:35ac9ee7d2d6 35
kenjiArai 3:35ac9ee7d2d6 36 int main()
kenjiArai 3:35ac9ee7d2d6 37 {
kenjiArai 3:35ac9ee7d2d6 38 pc.printf("\x1b[2J\x1b[H %s\r\n %s %s (UTC)\r\n",
kenjiArai 3:35ac9ee7d2d6 39 __FILE__, __DATE__, __TIME__);
kenjiArai 3:35ac9ee7d2d6 40 osThreadCreate(osThread(serial_task), NULL);
kenjiArai 3:35ac9ee7d2d6 41 while(true) {
kenjiArai 3:35ac9ee7d2d6 42 led=!led;
kenjiArai 3:35ac9ee7d2d6 43 ThisThread::sleep_for(1000);
kenjiArai 3:35ac9ee7d2d6 44 }
kenjiArai 3:35ac9ee7d2d6 45 }
kenjiArai 3:35ac9ee7d2d6 46
kenjiArai 3:35ac9ee7d2d6 47 void serial_task(void const*)
kenjiArai 3:35ac9ee7d2d6 48 {
kenjiArai 3:35ac9ee7d2d6 49 USBHostSerial usb_ser;
kenjiArai 3:35ac9ee7d2d6 50 wait(0.5f);
kenjiArai 3:35ac9ee7d2d6 51 while(true) {
kenjiArai 3:35ac9ee7d2d6 52 // try to connect a USB serial device
kenjiArai 3:35ac9ee7d2d6 53 while(!usb_ser.connect()) {
kenjiArai 3:35ac9ee7d2d6 54 ThisThread::sleep_for(500);
kenjiArai 3:35ac9ee7d2d6 55 }
kenjiArai 3:35ac9ee7d2d6 56 // in a loop, print all characters received
kenjiArai 3:35ac9ee7d2d6 57 // if the device is disconnected, we try to connect it again
kenjiArai 3:35ac9ee7d2d6 58 while (true) {
kenjiArai 3:35ac9ee7d2d6 59 // if device disconnected, try to connect it again
kenjiArai 3:35ac9ee7d2d6 60 if (!usb_ser.connected()) {
kenjiArai 3:35ac9ee7d2d6 61 break;
kenjiArai 3:35ac9ee7d2d6 62 }
kenjiArai 3:35ac9ee7d2d6 63 // print characters received
kenjiArai 3:35ac9ee7d2d6 64 while (usb_ser.available()) {
kenjiArai 3:35ac9ee7d2d6 65 pc.printf("%c", usb_ser.getc());
kenjiArai 3:35ac9ee7d2d6 66 }
kenjiArai 3:35ac9ee7d2d6 67 }
kenjiArai 3:35ac9ee7d2d6 68 }
kenjiArai 3:35ac9ee7d2d6 69 }
kenjiArai 3:35ac9ee7d2d6 70
kenjiArai 3:35ac9ee7d2d6 71 #endif
kenjiArai 3:35ac9ee7d2d6 72
kenjiArai 3:35ac9ee7d2d6 73 #if 0
kenjiArai 3:35ac9ee7d2d6 74 // USBDevice example
kenjiArai 3:35ac9ee7d2d6 75 #include "mbed.h"
kenjiArai 3:35ac9ee7d2d6 76 #include "USBSerial.h"
kenjiArai 3:35ac9ee7d2d6 77 //Virtual serial port over USB
kenjiArai 3:35ac9ee7d2d6 78 USBSerial serial;
kenjiArai 3:35ac9ee7d2d6 79 Serial pc(USBTX, USBRX, 115200);
kenjiArai 3:35ac9ee7d2d6 80 int main(void)
kenjiArai 3:35ac9ee7d2d6 81 {
kenjiArai 3:35ac9ee7d2d6 82 uint32_t n = 0;
kenjiArai 3:35ac9ee7d2d6 83 while(1) {
kenjiArai 3:35ac9ee7d2d6 84 serial.printf("I am a virtual serial port\r\n");
kenjiArai 3:35ac9ee7d2d6 85 pc.printf("I am also a virtual serial port. loop count = %d\r\n", n++);
kenjiArai 3:35ac9ee7d2d6 86 }
kenjiArai 3:35ac9ee7d2d6 87 }
kenjiArai 3:35ac9ee7d2d6 88 #endif