Ticker icon indicating copy to clipboard operation
Ticker copied to clipboard

Build failure with STM32 Blue Pill board

Open ukoda opened this issue 1 year ago • 2 comments

When I try to build with version 4.4.0 for a STM32F103C8 Blue Pill board I get the error:

Compiling .pio/build/bluepill_f103c8/lib6e0/Ticker/Ticker.cpp.o
In file included from src/main.cpp:19:0:
.pio/libdeps/bluepill_f103c8/Ticker/Ticker.h:56:7: error: expected nested-name-specifier before 'fptr'
 using fptr = std::function<void()>;

Followed by the normal errors you would expect after that.

The problem may be at line 54 of Ticker.h, #if defined(__arm__) || defined(ESP8266) || defined(ESP32). I changed that area to just typedef void (*fptr)(); and then everything builds and runs ok.

I have not dug any deeper as that change is enough to keep me going but I figured you may wish to review the issue so it does not catch other people out.

If you need more detail just let me know what.

ukoda avatar Feb 20 '24 09:02 ukoda

Maybe this is a problem with the compiler version for the Blue Pill.

sstaub avatar Feb 20 '24 09:02 sstaub

@sstaub That is quite likely as I also see the warning:

In file included from src/main.cpp:19:0:
.pio/libdeps/bluepill_f103c8/Ticker/Ticker.h:153:28: warning: non-static data member initializers only available with -std=c++11 or -std=gnu++11 [enabled by default]
  resolution_t resolution = MICROS;

I'm building under PlatformIO with the Arduino frame work. The terminal output doesn't show what compiler version it is using and I can't see where to find that info in the project settings.

ukoda avatar Feb 20 '24 10:02 ukoda