Stm32 Core confusion

hello everyone,

i really get crazy with the two stm32 cores (stm32duino core vs maple core).

if i use the maple core i cant use adafruit gfx and adafruit ssd1306
if i use official stm32 core i cant use the usb composite library for getting usbmidi to work

why nothing is really working?

with maple core i also cant get same pwm capable pins work as pwm pins compared to the official core

its ultra frustrating :frowning:
with the maple core i get tons of errors what conversations cant work in different functions like:
no matching function for call to 'SPIClass::transfer(uint8_t&, size_t&)’*

  • _spi->transfer(buffer, len);*

invalid conversion from 'const uint8_t {aka const unsigned char*}’ to ‘uint8* {aka unsigned char*}’ [-fpermissive]*

  • if (_wire->write(prefix_buffer, prefix_len) != prefix_len) {*

this works with taht core but lacks with this function and vice versa

i only want using an i2c oled with the adafruit gfx lib
want to use pwm output on PB8 PB9, PA15, PB3, PB10, PB11
while USBcomposit usb midi interface is appearing over usb and everything in one core

does anyone have same errors, problems and mybe solutions?

I’m pretty sure an older version of Adafruit GFX worked for the Maple core. Try using different versions as per library registry.

Yep, the SPI implementations are different and are one source of incompatibility of libraries between the croes, I observed the same.

so, are there any solutions to this?

I might be wrong, again! But, is the Maple core still being worked on? I was sure I read on their github some time back – when I first got a Blue Pill – that Maple was dead and not to use it.

I just checked GitHub - leaflabs/libmaple: [INACTIVE] C and C++ library for STM32 ARM Cortex-M3 development boards. and it hasn’t been touched for 6 years, also, the readme states:

[INACTIVE] libmaple libmaple is inactive and no longer accepting submissions. Please consider instead.

So, Maple does appear dead in the water.


I had the same problem like in the first post, Adafruit_1306 library problem with different cores, and lost few days going back and forth…
Anyway I solved it. First, I`m using official STM32 core and this library :

Im using 4pin oled display (I2C) and everything works great, btw I dont recommend wasting time using maple core.

This is my .ini file configuration

platform = ststm32
board = genericSTM32F103CB
framework = arduino
debug_tool = stlink
upload_protocol = stlink
lib_deps = 
	adafruit/Adafruit GFX Library@^1.11.3