A trivial example of a UART comm. Works on all Nucleos.

Dependencies:   mbed

Committer:
Foxnec
Date:
Thu Mar 05 21:56:11 2015 +0000
Revision:
1:a149bb0c3d05
Parent:
0:389db7a2ed7f
Child:
2:bdc32e32f6f1
First trivial example of uart comm.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Foxnec 0:389db7a2ed7f 1 #include "mbed.h"
Foxnec 1:a149bb0c3d05 2 #include <string>
Foxnec 0:389db7a2ed7f 3
Foxnec 0:389db7a2ed7f 4 //------------------------------------
Foxnec 0:389db7a2ed7f 5 // Hyperterminal configuration
Foxnec 1:a149bb0c3d05 6 // 115200 bauds, 8-bit data, no parity
Foxnec 0:389db7a2ed7f 7 //------------------------------------
Foxnec 0:389db7a2ed7f 8 void flushSerialPort(Serial* port);
Foxnec 0:389db7a2ed7f 9
Foxnec 0:389db7a2ed7f 10 Serial pc(SERIAL_TX, SERIAL_RX);
Foxnec 0:389db7a2ed7f 11
Foxnec 0:389db7a2ed7f 12 DigitalOut myled(LED1);
Foxnec 0:389db7a2ed7f 13
Foxnec 0:389db7a2ed7f 14 int main()
Foxnec 0:389db7a2ed7f 15 {
Foxnec 1:a149bb0c3d05 16 int i;
Foxnec 1:a149bb0c3d05 17 char text[255];
Foxnec 1:a149bb0c3d05 18
Foxnec 1:a149bb0c3d05 19
Foxnec 0:389db7a2ed7f 20 pc.baud(115200);
Foxnec 1:a149bb0c3d05 21 i=1;
Foxnec 0:389db7a2ed7f 22 pc.printf("Hello World !\n");
Foxnec 1:a149bb0c3d05 23
Foxnec 1:a149bb0c3d05 24
Foxnec 0:389db7a2ed7f 25 while(1) {
Foxnec 0:389db7a2ed7f 26
Foxnec 1:a149bb0c3d05 27 wait(1);
Foxnec 1:a149bb0c3d05 28 pc.printf("You can tell me anything and I will repeat it...\n");
Foxnec 0:389db7a2ed7f 29 myled = !myled;
Foxnec 1:a149bb0c3d05 30
Foxnec 0:389db7a2ed7f 31
Foxnec 1:a149bb0c3d05 32 //NOTE: the data must be terminated with CR(Carriage return)
Foxnec 1:a149bb0c3d05 33 //NOTE: I had no luck using scanf() - it just scans an empty string.
Foxnec 1:a149bb0c3d05 34 i=0;
Foxnec 1:a149bb0c3d05 35 while (text[i-1] != '\r'){
Foxnec 1:a149bb0c3d05 36 if (pc.readable()){
Foxnec 1:a149bb0c3d05 37 text[i++] = getc(pc);
Foxnec 1:a149bb0c3d05 38 }
Foxnec 1:a149bb0c3d05 39 }
Foxnec 1:a149bb0c3d05 40
Foxnec 1:a149bb0c3d05 41 pc.printf("Received data: %s", text);
Foxnec 1:a149bb0c3d05 42 memset(&text, 0, i);
Foxnec 1:a149bb0c3d05 43 //flushSerialPort(&pc);
Foxnec 1:a149bb0c3d05 44
Foxnec 0:389db7a2ed7f 45 }
Foxnec 0:389db7a2ed7f 46 }
Foxnec 0:389db7a2ed7f 47
Foxnec 0:389db7a2ed7f 48 void flushSerialPort(Serial* port)
Foxnec 0:389db7a2ed7f 49 {
Foxnec 0:389db7a2ed7f 50
Foxnec 0:389db7a2ed7f 51 while((*port).readable()) {
Foxnec 0:389db7a2ed7f 52 (*port).getc();
Foxnec 0:389db7a2ed7f 53 }
Foxnec 0:389db7a2ed7f 54
Foxnec 0:389db7a2ed7f 55 return;
Foxnec 0:389db7a2ed7f 56 }