
In the mbed documentation LPC1768 there are many examples of serial communication implemented in a structured and disorganized way. So, I decided to make it very practical and reusable for other users who need to use this feature. For this, I created my own library based on the OO paradigm.
In the mbed documentation LPC1768 there are many examples of serial communication implemented in a structured and disorganized way. So, I decided to make it very practical and reusable for other users who need to use this feature. For this, I created my own library based on the OO paradigm.
SerialCommunication.cpp@0:78c623c147d2, 2017-09-05 (annotated)
- Committer:
- waspSalander
- Date:
- Tue Sep 05 22:36:20 2017 +0000
- Revision:
- 0:78c623c147d2
My own Serial Communication library.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
waspSalander | 0:78c623c147d2 | 1 | #include "SerialCommunication.h" |
waspSalander | 0:78c623c147d2 | 2 | |
waspSalander | 0:78c623c147d2 | 3 | SerialCommunication::SerialCommunication(PinName tx, PinName rx, int baudRate): tx(tx), rx(rx){ |
waspSalander | 0:78c623c147d2 | 4 | serial = new Serial(tx, rx); // tx, rx |
waspSalander | 0:78c623c147d2 | 5 | serial->baud(baudRate); |
waspSalander | 0:78c623c147d2 | 6 | messageLength = 4; // tam palavra + 1 ('\n') |
waspSalander | 0:78c623c147d2 | 7 | |
waspSalander | 0:78c623c147d2 | 8 | debug = new DigitalOut(LED1); // debug send info |
waspSalander | 0:78c623c147d2 | 9 | } |
waspSalander | 0:78c623c147d2 | 10 | |
waspSalander | 0:78c623c147d2 | 11 | |
waspSalander | 0:78c623c147d2 | 12 | int SerialCommunication::ReceiveCommand(){ // RECEIVE INFO |
waspSalander | 0:78c623c147d2 | 13 | |
waspSalander | 0:78c623c147d2 | 14 | char commandReceived[messageLength]; |
waspSalander | 0:78c623c147d2 | 15 | |
waspSalander | 0:78c623c147d2 | 16 | |
waspSalander | 0:78c623c147d2 | 17 | if(serial->readable()){ |
waspSalander | 0:78c623c147d2 | 18 | serial->gets(commandReceived,messageLength); |
waspSalander | 0:78c623c147d2 | 19 | |
waspSalander | 0:78c623c147d2 | 20 | if (strcmp(commandReceived, "s0b") == 0){ //s0b : ex de palavra q desejo receber" |
waspSalander | 0:78c623c147d2 | 21 | return 1; |
waspSalander | 0:78c623c147d2 | 22 | } |
waspSalander | 0:78c623c147d2 | 23 | } |
waspSalander | 0:78c623c147d2 | 24 | return 0; |
waspSalander | 0:78c623c147d2 | 25 | } |
waspSalander | 0:78c623c147d2 | 26 | |
waspSalander | 0:78c623c147d2 | 27 | |
waspSalander | 0:78c623c147d2 | 28 | void SerialCommunication::SendCommand(string commandSended){ // SEND INFO |
waspSalander | 0:78c623c147d2 | 29 | |
waspSalander | 0:78c623c147d2 | 30 | // SEND INFO |
waspSalander | 0:78c623c147d2 | 31 | //while(1){ |
waspSalander | 0:78c623c147d2 | 32 | serial->printf("%s",commandSended); |
waspSalander | 0:78c623c147d2 | 33 | debug->write(1); |
waspSalander | 0:78c623c147d2 | 34 | wait(DELAY_COMMAND); |
waspSalander | 0:78c623c147d2 | 35 | debug->write(0); |
waspSalander | 0:78c623c147d2 | 36 | wait(DELAY_COMMAND); |
waspSalander | 0:78c623c147d2 | 37 | //} |
waspSalander | 0:78c623c147d2 | 38 | } |