diff --git a/APIs_Platform/Callback_SerialPassthrough/main.cpp b/APIs_Platform/Callback_SerialPassthrough/main.cpp new file mode 100644 index 0000000..788b3c2 --- /dev/null +++ b/APIs_Platform/Callback_SerialPassthrough/main.cpp @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2020 Arm Limited and affiliates. + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "mbed.h" + +static UnbufferedSerial pc(USBTX, USBRX); +static UnbufferedSerial uart(D1, D0); +DigitalOut led1(LED1); +DigitalOut led4(LED4); +char *pc2uart = new char[1]; +char *uart2pc = new char[1]; + +void uart_recv() +{ + led1 = !led1; + while (uart.readable()) { + uart.read(uart2pc, sizeof(uart2pc)); + pc.write(uart2pc, sizeof(uart2pc)); + } +} + +void pc_recv() +{ + while (pc.readable()) { + led4 = !led4; + pc.read(pc2uart, sizeof(pc2uart)); + uart.write(pc2uart, sizeof(pc2uart)); + } +} + +int main() +{ + pc.attach(&pc_recv, UnbufferedSerial::RxIrq); + uart.attach(&uart_recv, UnbufferedSerial::RxIrq); + + while (1) { + sleep(); + } +} diff --git a/APIs_Platform/PlatfromOverview_Callbacks/main.cpp b/APIs_Platform/PlatfromOverview_Callbacks/main.cpp new file mode 100644 index 0000000..6758d58 --- /dev/null +++ b/APIs_Platform/PlatfromOverview_Callbacks/main.cpp @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2020 Arm Limited and affiliates. + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "mbed.h" + +// Create a serial object +static UnbufferedSerial serial(USBTX, USBRX); +char *c = new char[1]; + +// A function that echoes any received data back +void echo() +{ + while (serial.readable()) { + serial.read(c, sizeof(c)); + serial.write(c, sizeof(c)); + } +} + +int main(void) +{ + // Call our function echo whenever the serial line receives data + serial.attach(&echo, UnbufferedSerial::RxIrq); +} diff --git a/Tutorials_Debugging/DebugPrintf_BlinksLED/main.cpp b/Tutorials_Debugging/DebugPrintf_BlinksLED/main.cpp new file mode 100644 index 0000000..58845f8 --- /dev/null +++ b/Tutorials_Debugging/DebugPrintf_BlinksLED/main.cpp @@ -0,0 +1,19 @@ +/* + * Copyright (c) 2020 Arm Limited and affiliates. + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "mbed.h" + +DigitalOut led1(LED1); + +int main() +{ + while (true) { + led1 = !led1; + + // Print something over the serial connection + printf("Blink! LED is now %d\r\n", led1.read()); + ThisThread::sleep_for(500); + } +} diff --git a/Tutorials_Debugging/DebugPrintf_SetBaudRate/main.cpp b/Tutorials_Debugging/DebugPrintf_SetBaudRate/main.cpp new file mode 100644 index 0000000..3aaed7e --- /dev/null +++ b/Tutorials_Debugging/DebugPrintf_SetBaudRate/main.cpp @@ -0,0 +1,15 @@ +/* + * Copyright (c) 2020 Arm Limited and affiliates. + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "mbed.h" + +BufferedSerial pc(USBTX, USBRX); + +int main() +{ + pc.set_baud(9600); + char msg[] = "Hello World!\r\n"; + pc.write(msg, sizeof(msg)); +} diff --git a/Tutorials_SerialComm/Serial_EchoBack/main.cpp b/Tutorials_SerialComm/Serial_EchoBack/main.cpp new file mode 100644 index 0000000..effb3e9 --- /dev/null +++ b/Tutorials_SerialComm/Serial_EchoBack/main.cpp @@ -0,0 +1,19 @@ +/* + * Copyright (c) 2006-2020 Arm Limited and affiliates. + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "mbed.h" + +static BufferedSerial pc(USBTX, USBRX); + +int main() +{ + char msg[] = "Echoes back to the screen anything you type\n"; + char *buff = new char[1]; + pc.write(msg, sizeof(msg)); + while (1) { + pc.read(buff, sizeof(buff)); + pc.write(buff, sizeof(buff)); + } +} \ No newline at end of file diff --git a/Tutorials_SerialComm/Serial_HelloWorld/main.cpp b/Tutorials_SerialComm/Serial_HelloWorld/main.cpp new file mode 100644 index 0000000..0bebdcd --- /dev/null +++ b/Tutorials_SerialComm/Serial_HelloWorld/main.cpp @@ -0,0 +1,15 @@ +/* + * Copyright (c) 2006-2020 Arm Limited and affiliates. + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "mbed.h" + +static BufferedSerial pc(USBTX, USBRX); // tx, rx + +int main() +{ + char msg[] = "Hello World!\n"; + pc.write(msg, sizeof(msg)); + while (1); +} \ No newline at end of file diff --git a/Tutorials_SerialComm/Serial_LEDControl/main.cpp b/Tutorials_SerialComm/Serial_LEDControl/main.cpp new file mode 100644 index 0000000..8adf253 --- /dev/null +++ b/Tutorials_SerialComm/Serial_LEDControl/main.cpp @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2006-2020 Arm Limited and affiliates. + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "mbed.h" + +static BufferedSerial pc(USBTX, USBRX); // tx, rx +PwmOut led(LED1); + +float brightness = 0.0; + +int main() +{ + char msg[] = "Press 'u' to turn LED1 brightness up, 'd' to turn it down\n"; + char *c = new char[1]; + pc.write(msg, sizeof(msg)); + + while (1) { + pc.read(c, sizeof(c)); + pc.write(c, sizeof(c)); + if ((*c == 'u') && (brightness < 0.5)) { + brightness += 0.01; + led = brightness; + } + if ((*c == 'd') && (brightness > 0.0)) { + brightness -= 0.01; + led = brightness; + } + } + +} \ No newline at end of file diff --git a/Tutorials_SerialComm/Serial_PassCharacters/main.cpp b/Tutorials_SerialComm/Serial_PassCharacters/main.cpp new file mode 100644 index 0000000..0d268a9 --- /dev/null +++ b/Tutorials_SerialComm/Serial_PassCharacters/main.cpp @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2006-2020 Arm Limited and affiliates. + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "mbed.h" + +static BufferedSerial pc(USBTX, USBRX); +static BufferedSerial uart(D1, D0); + +DigitalOut pc_activity(LED1); +DigitalOut uart_activity(LED2); + +int main() +{ + char *pc2uart = new char[1]; + char *uart2pc = new char[1]; + while (1) { + if (pc.readable()) { + pc.read(pc2uart, sizeof(pc2uart)); + uart.write(pc2uart, sizeof(pc2uart)); + pc_activity = !pc_activity; + } + if (uart.readable()) { + uart.read(uart2pc, sizeof(uart2pc)); + pc.write(uart2pc, sizeof(uart2pc)); + uart_activity = !uart_activity; + } + } +} \ No newline at end of file diff --git a/Tutorials_SerialComm/Serial_ReadToBuffer/main.cpp b/Tutorials_SerialComm/Serial_ReadToBuffer/main.cpp new file mode 100644 index 0000000..9cb2ab1 --- /dev/null +++ b/Tutorials_SerialComm/Serial_ReadToBuffer/main.cpp @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2020 Arm Limited and affiliates. + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "mbed.h" + +// Create a serial object +static BufferedSerial pc(USBTX, USBRX); + +int main(void) +{ + char buffer[10] = {}; + while (1) { + if (pc.readable()) { + ThisThread::sleep_for(100); + pc.read(buffer, 10); + printf("I got '%s'\n", buffer); + } + } +} \ No newline at end of file diff --git a/Tutorials_SerialComm/Serial_STDOUT/main.cpp b/Tutorials_SerialComm/Serial_STDOUT/main.cpp new file mode 100644 index 0000000..512f18b --- /dev/null +++ b/Tutorials_SerialComm/Serial_STDOUT/main.cpp @@ -0,0 +1,12 @@ +/* + * Copyright (c) 2006-2020 Arm Limited and affiliates. + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "mbed.h" + +int main() +{ + printf("Hello World!\n"); + while (1); +} \ No newline at end of file