Hello, I’d like to use the console output window that opens up in mbed studio when I connect my nucleof446RE board. I’m porting a library and I need this functionality for very frequent debugging purposes. This doesn’t give any output on the console:
#include "USBSerial.h"
#include <cstdio>
USBSerial pc;
int main(){
pc.printf("hello");
}
it seems, you can not change the COM port of Serial Monitor. The Serial monitor of MbedStudio is probably locked for the VCP of Debug interface (ST-link/DapLink) and so you can not switch it to on-chip USB interface with additional cable (pinout).
So probably must use some external app where also DTR signal is controlled.
I do not know what you mean with “very frequent debugging” but you can try to increase baud rate.
What I mean by “frequent debugging” is that I might frequently want to print out variables and messages to check if things work as intended, even though printing them out doesn’t make sense when everything is complete. I think this is a standard practice.
I can get things to print the usual way:
BufferedSerial pc(USBTX, USBRX, 115200);
int main(){
pc.write("Hello", sizeof("Hello"));
}
but bufferedserial doesn’t have the handy printf. You can imagine the sheer amount of pain to evaluate floats, integers etc. to strings and then cast them into char* so that in the end I can get them to print on the console. Is there any way to use printf to print out things fast so that I can meaningfully use it? I really need this.
I could have used the debugger for this purpose but because it’s not a complete app yet, most things are calculated, but not being used, so they are ‘optimized away’ and I can’t see their values when I open a debugging session.
okay the fdopen() method works, but as for using printf() without an object didn’t work for me. It compiles and everything, but I never saw anything on the console. That was the first thing I tried.
Anyway, Thanks for the prompt reply and helping me out.
The debug printf of default console must work.
You must set Serial monitor to 9600 which is default. Or you must change change the baud rate in mbed_app.json how was menitioned in the shered topic.
Yes. I tried that. The only thing works is the FILE read/write method. Also The console is a bit finicky. I have to change the baud rate back and forth a few times before it works correctly, when I close and reopen mbed studio. But one method is sufficient for me so I’m not complaining.