Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
6 years, 1 month ago.
Send data between PC Monitor and Bluetooth through the serial port
Hi, I would like to send commands from the PC to the bluetooth HC-05 and vice versa through the serial port. I have created the serial port as a Serial, but I would not know how to do the exchange of readings and writings. I have the following:
PinName TX = PC_6; PinName RX = PA_12; Serial my_serial(TX, RX); void config(){ //if(my_serial.availab){ Serial.write(my_serial.read()); //}else{ } }
What I am doing is to configure the bluetooth. how could I do it?
Thanks!!
1 Answer
6 years, 1 month ago.
Hi Jose,
We have an example for serial pass-through between PC and device UART. https://os.mbed.com/docs/v5.10/apis/serial.html#serial-examples
It needs two UARTs to achieve this application, one is for communicating with PC, and the other is for communicating with device, so you also need to check the platform in use is equipped with two UARTs.
Different devices support different baud rate, so you may need to configure the serial object to correct baudrate.
#include "mbed.h" Serial pc(USBTX, USBRX); // tx, rx Serial device(MBED_CONF_APP_UART1_TX, MBED_CONF_APP_UART1_RX); // tx, rx int main() { device.baud(38400); // default baud rate of HC05 while (1) { // Add the serial pass-through code here } }
Please let me know if you have any questions!
- Desmond, team Mbed
Good again, sorry but I think I did not explain myself well. What I want to do is that through an app that I have when I press a button I send the character assigned to that button by the serial port so that my program depending on the received character does one thing or another. I have been trying to debug the code and for this I had to install the Software System Workbench for STM32 but I have problems importing the MBED project. I have made some changes to my code and attach it here:
#include "mbed.h" PinName TX = PC_6; PinName RX = PA_12; Serial pc(TX, RX); int nuevoDato=0; char dato; int main() { pc.baud(9600); pc.attach(&recibeDatos); while(1){ if(nuevoDato==1){ nuevoDato=0; switch(dato) { case 'A': avanza(); break; case 'H': home(); break; } } } } void recibeDatos(){ dato = pc.getc(); nuevoDato=1; }
This code does not execute anything I do not know if it is missing something to receive the character by the serial port and depending on the received character that does one thing or another. Or I do not know if it can also be for the Baud that has the Bluetooth configured that does not match the main and can give problems.
Thank you!!
posted by 14 Nov 2018