Instead of asking, just try … if you can only get 9600 BAUD, it is time to replace the PC.
Ray
From what I recall, the speed is limited by how many newlines you send.
If you send single chars followed by a newline, the speed is probably only 115200, or perhaps lower.
But if you send longer strings, e.g. 32 or 64 chars long, the speed is much much higher.
I am not sure why newlines made a difference. It could be something in the libmaple USB handling, but could equally be something in the hosts USB driver or the hosts terminal program.
I didnt dig any deeper, as I found it is plenty fast enough for me to record data from an accelerometer and send in realtime to a PC, so I could do vibration analysis on laser cutter gantry
Baudrate matters when you have got an “USB to serial dongle” in between. But that dongle is not used when communicating with Maple Mini via USB serial.
PC USB <———-USB=12MBit———–>Maple Mini USB (depends on MM processing speed)
PC USB <——USB=12MBit——|USB to Serial dongle|——-Serial 9k6..115k2..3MBit—–>Maple Mini UART
Am I missing something?
Of course, in this situation the PC latency has huge influence, but this is the maximum average speed what I could get with an i5 2.25GHz Win10 machine.
Am I missing something?
Of course, in this situation the PC latency has huge influence, but this is the maximum average speed what I could get with an i5 2.25GHz Win10 machine.
Ray, I am surely aware of this latency, too. BTW, how “much” (long) work are we actually talking about here (on uC side)?
Just wondered if anyone else could get better results.
Ray, I am surely aware of this latency, too. BTW, how “much” (long) work are we actually talking about here (on uC side)?
Just wondered if anyone else could get better results.
Am I missing something?
Of course, in this situation the PC latency has huge influence, but this is the maximum average speed what I could get with an i5 2.25GHz Win10 machine.
I use handshake exactly because otherwise I can sometimes lose bytes, or receive non-sense data when too many bytes are underway … is this USB overflow?
I would be interested in .enableBlockingTx() for F103.
For the enableBlockingTx() under F103, I presume it could be implemented.
From what I’ve seen in the code, the following code should probably simply wait instead of returning without sending data depending of blocking flag.
/* This function is non-blocking.
*
* It copies data from a usercode buffer into the USB peripheral TX
* buffer, and returns the number of bytes copied. */
uint32 usb_cdcacm_tx(const uint8* buf, uint32 len) {
/* Last transmission hasn't finished, so abort. */
if (usb_cdcacm_is_transmitting()) {
return 0;
}

![[SOLVED] Discovery STM32F100RB — Trouble with timers and library structure](https://sparklogic.ru/wp-content/uploads/2019/11/st-stm32vl-discovery-90x90.jpg)
