Test HC05 Bluetooth adapter with NUCLEO F401RE. Includes serial command listener will echo commands from remote PC both on that connection and on local PC.
Dependencies: mbed multi-serial-command-listener
main.cpp
- Committer:
- joeata2wh
- Date:
- 2016-04-05
- Revision:
- 1:667ddd72c851
- Parent:
- 0:02b4c2dd2a55
- Child:
- 2:7927c31fd7af
File content as of revision 1:667ddd72c851:
/* xej-Nucleo-F401RE-and-HC05-Bluetooth.cpp Test Nucleo-F401RE with HC05 Bluetooth adapter Wanted to use it for upload of telemetry type a command and hc053 port and it will be echoed back pin-HC05 Pin-MBed TX --- PA_12 RX --- PA_11 +5V --- +5 on CN6 Also worked on 3.3V on CN6 GND --- GND on CN6 STATE--- NC - not connected EN --- NC - not connected If you cycle power on mbed you may need to close and re-open the port connection which is pretty easy when using RealTerm. *** * By Joseph Ellsworth CTO of A2WH * Take a look at A2WH.com Producing Water from Air using Solar Energy * March-2016 License: https://developer.mbed.org/handbook/MIT-Licence * Please contact us http://a2wh.com for help with custom design projects. *** */ #include "mbed.h" #include "multi-serial-command-listener.h" char myCommand[SCMD_MAX_CMD_LEN+1]; //------------------------------------ // RealTerm or Teraterm config // 9600 bauds, 8-bit data, no parity //------------------------------------ //Serial hc05(D1, D0); // PA_2, PA_3 This one does not work because redirected to USBTX, USBRX // // can be fixed by changing solder bridges Serial hc052(D10,D2); // PB_6, PA_10 This one works Serial hc053(PA_11, PA_12); // This one works Serial pc(USBTX, USBRX); DigitalOut myled(LED1); void commandCallback(char *cmdIn, void *extraContext) { strcpy(myCommand, cmdIn); // all our commands will be recieved async in commandCallback // we don't want to do time consuming things since it could // block the reader and allow the uart to overflow so we simply // copy it out in the callback and then process it latter. // See data_log one of dependants of this library for example // of using *extraContext } int main() { pc.baud(9600); //hc05.baud(9600); hc052.baud(9600); hc053.baud(9600); int i = 1; struct SCMD *cmdProc = scMake(&hc053, commandCallback, NULL) ; pc.printf("Test HC05 Bluetooth Connection !\r\n"); while(1) { wait(1); //hc05.printf("d1/do this program runs since %d seconds.\r\n", i); hc052.printf("d10/d2 %d seconds\r\n", i); hc053.printf("PA_11/PA_12 %d seconds\r\n", i); pc.printf("This program runs since %d seconds.\r\n", i++); myled = !myled; if (myCommand[0] != 0) { pc.printf("Command Recieved =%s\r\n", myCommand); hc053.printf("\r\nCommand Recieved =%s\r\n", myCommand); if (strcmp(myCommand,"clear") == 0) { i = 0; } myCommand[0] = 0; // clear until we recieve the next one } } }