Closed
Description
Preconditions:
OS: Win10
Arduino 1.8.10
STM32 1.8.0
BluePill F103
HID Bootloader
USB CDC Serial
USB Serial output is not working when setting
HAL_UART_MODULE_ONLY
HAL_UART_MODULE_ENABLED
in build_opt.h
Target: LIN Serial implementeation on UART1 and USB Serial for debugging
Root cause:
Arduino_Core_STM32/cores/arduino/Print.cpp
Lines 199 to 220 in ea86645
Function write in Print.cpp gets disabled when setting UART into HAL mode.
But only uart_debug should be disabled.
Working bugfix:
extern "C"
{
__attribute__((weak)) int _write(int file, char *ptr, int len)
{
#if defined(HAL_UART_MODULE_ENABLED) && !defined(HAL_UART_MODULE_ONLY)
switch (file)
{
case STDOUT_FILENO:
case STDERR_FILENO:
uart_debug_write((uint8_t *)ptr, (uint32_t)len);
break;
case STDIN_FILENO:
break;
default:
((class Print *)file)->write((uint8_t *)ptr, len);
break;
}
#else
if (file != STDERR_FILENO)
((class Print *)file)->write((uint8_t *)ptr, len);
#endif
return len;
}
}