Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: BufferedSoftSerial
Diff: 3_main.cpp
- Revision:
- 0:98865e300cd5
- Child:
- 1:14d1cec89444
diff -r 000000000000 -r 98865e300cd5 3_main.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/3_main.cpp Sun May 10 08:15:36 2020 +0000
@@ -0,0 +1,97 @@
+/*
+ * Mbed Application program
+ * SoftSerial(also BufferedSoftSerial) function test programs
+ * UART 3 channels
+ * (1) Mbed Serial communication line as "pc"
+ * (2) CPU another UART channel as "ser"
+ * (3) Software Serial channel as "dev"
+ *
+ * Copyright (c) 2020 Kenji Arai / JH1PJL
+ * http://www7b.biglobe.ne.jp/~kenjia/
+ * https://os.mbed.com/users/kenjiArai/
+ * Created: May 9th, 2020
+ * Revised: May 10th, 2020
+ */
+
+/*
+ Tested board on OS5.15.3
+ Nucleo-F446RE, Nucleo-L432KC
+ */
+
+// Pre-selection --------------------------------------------------------------
+#include "select_example.h"
+//#define EXAMPLE_3
+#ifdef EXAMPLE_3
+#warning "Select 3"
+
+// Include --------------------------------------------------------------------
+#include "mbed.h"
+#include "BufferedSoftSerial.h"
+
+// Definition -----------------------------------------------------------------
+#if (MBED_MAJOR_VERSION == 2)
+#error "Cannot run on OS2"
+#endif
+
+// Constructor ----------------------------------------------------------------
+#if defined(TARGET_NUCLEO_L432KC)
+DigitalOut test_point(D12);
+Serial ser(D5, D4, 9600);
+BufferedSoftSerial dev(D6,D3);
+#elif defined(TARGET_NUCLEO_F446RE)
+DigitalOut test_point(A0);
+Serial ser(D8, D2, 9600);
+BufferedSoftSerial dev(D4,D3);
+#endif
+Serial pc(USBTX,USBRX, 9600);
+
+// RAM ------------------------------------------------------------------------
+
+// ROM / Constant data --------------------------------------------------------
+
+// Function prototypes --------------------------------------------------------
+void pc2dev(void const *args);
+void dev2pc(void const *args);
+
+//------------------------------------------------------------------------------
+// Control Program
+//------------------------------------------------------------------------------
+osThreadDef(pc2dev, osPriorityNormal,1024);
+osThreadDef(dev2pc, osPriorityNormal,1024);
+
+int main()
+{
+ // Start tasks
+ osThreadCreate(osThread(pc2dev), NULL);
+ osThreadCreate(osThread(dev2pc), NULL);
+ // main routine
+ int count = 0;
+ while(true) {
+ ser.printf( "Time passed %4d [sec]\r\n", count++);
+ ThisThread::sleep_for(1000);
+ }
+}
+
+void pc2dev(void const *args)
+{
+ while(true) {
+ if (pc.readable()) {
+ dev.putc(pc.getc());
+ } else {
+ ThisThread::yield();
+ }
+ }
+}
+
+void dev2pc(void const *args)
+{
+ while(true) {
+ if (dev.readable()) {
+ pc.putc(dev.getc());
+ } else {
+ ThisThread::yield();
+ }
+ }
+}
+
+#endif //#ifdef EXAMPLE_3
\ No newline at end of file