Stm32 blue pill with mqtt and ethernet

hi
this my first time
use stm32 blue pill board and platformio
so I need help
with compatible lib to use with my board
ethernet sheild w550
mqtt to publish and subscibe
urat (serial port ) lib to link two blue pill communication

Well we can’t write the firmware for you, but PlatformIO includes a library searcher and plenty of documentation for the board configuration and the Arduino core(s).

Looks like the general Arduino Ethernet library might work. With that library there’s also an MQTT example in this library (ArduinoEthernetShield.ino). The used Arduino core (STM32Duino or Maple) will also provide the UART functionality, so look that up in the core’s documentation.

hi thanks to replay
but when compile I see more error
i need example one for mqtt and other for ethernet (w5500)

> Executing task in folder ps30kv: C:\Users\94r4d0x\.platformio\penv\Scripts\platformio.exe run <


Processing genericSTM32F103C8 (platform: ststm32; board: genericSTM32F103C8; framework: arduino)
------------------------------------------------------------------------------------------------------------------------------ 
Verbose mode can be enabled via `-v, --verbose` option
HARDWARE: STM32F103C8T6 72MHz, 20KB RAM, 64KB Flash
DEBUG: Current (blackmagic) External (blackmagic, jlink, stlink)
PACKAGES:
 - framework-arduinoststm32-maple 2.10000.200103 (1.0.0)
 - toolchain-gccarmnoneeabi 1.70201.0 (7.2.1)
LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 37 compatible libraries
Scanning dependencies...     
Dependency Graph    
|-- <Ethernet> 2.0.0
|   |-- <SPI> 1.0   
|-- <MQTT> 2.4.7    
Building in release mode
Compiling .pio\build\genericSTM32F103C8\FrameworkArduinoVariant\board.cpp.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduinoVariant\wirish\boards.cpp.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduinoVariant\wirish\boards_setup.cpp.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduinoVariant\wirish\start.S.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduinoVariant\wirish\start_c.c.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduinoVariant\wirish\syscalls.c.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\HardwareSerial.cpp.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\HardwareTimer.cpp.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\IPAddress.cpp.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\Print.cpp.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\Stream.cpp.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\WString.cpp.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\avr\dtostrf.c.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\cxxabi-compat.cpp.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\ext_interrupts.cpp.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\hooks.c.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\itoa.c.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\libmaple\adc.c.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\libmaple\adc_f1.c.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\libmaple\bkp_f1.c.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\libmaple\dac.c.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\libmaple\dma.c.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\libmaple\dma_f1.c.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\libmaple\exc.S.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\libmaple\exti.c.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\libmaple\exti_f1.c.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\libmaple\flash.c.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\libmaple\fsmc_f1.c.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\libmaple\gpio.c.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\libmaple\gpio_f1.c.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\libmaple\i2c.c.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\libmaple\i2c_f1.c.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\libmaple\iwdg.c.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\libmaple\nvic.c.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\libmaple\pwr.c.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\libmaple\rcc.c.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\libmaple\rcc_f1.c.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\libmaple\spi.c.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\libmaple\spi_f1.c.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\libmaple\stm32f1\performance\isrs.S.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\libmaple\stm32f1\performance\vector_table.S.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\libmaple\systick.c.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\libmaple\timer.c.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\libmaple\timer_f1.c.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\libmaple\usart.c.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\libmaple\usart_f1.c.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\libmaple\usart_private.c.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\libmaple\usb\stm32f1\usb.c.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\libmaple\usb\stm32f1\usb_cdcacm.c.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\libmaple\usb\stm32f1\usb_reg_map.c.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\libmaple\usb\usb_lib\usb_core.c.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\libmaple\usb\usb_lib\usb_init.c.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\libmaple\usb\usb_lib\usb_mem.c.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\libmaple\usb\usb_lib\usb_regs.c.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\libmaple\util.c.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\main.cpp.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\new.cpp.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\pwm.cpp.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\sdio.cpp.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\stm32f1\util_hooks.c.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\stm32f1\wiring_pulse_f1.cpp.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\stm32f1\wirish_debug.cpp.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\stm32f1\wirish_digital_f1.cpp.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\tone.cpp.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\usb_serial.cpp.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\wirish_analog.cpp.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\wirish_digital.cpp.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\wirish_math.cpp.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\wirish_shift.cpp.o
Compiling .pio\build\genericSTM32F103C8\FrameworkArduino\wirish_time.cpp.o
Compiling .pio\build\genericSTM32F103C8\src\main.cpp.o
Compiling .pio\build\genericSTM32F103C8\lib3e5\SPI\SPI.cpp.o
Compiling .pio\build\genericSTM32F103C8\lib73d\Ethernet_ID872\Dhcp.cpp.o
Compiling .pio\build\genericSTM32F103C8\lib73d\Ethernet_ID872\Dns.cpp.o
Compiling .pio\build\genericSTM32F103C8\lib73d\Ethernet_ID872\Ethernet.cpp.o
Compiling .pio\build\genericSTM32F103C8\lib73d\Ethernet_ID872\EthernetClient.cpp.o
Compiling .pio\build\genericSTM32F103C8\lib73d\Ethernet_ID872\EthernetServer.cpp.o
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src\SPI.cpp: In member function 'uint16_t SPIClass::transfer16(uint16_t) const':
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src\SPI.cpp:383:5: warning: this 'while' clause does not guard... [-Wmisleading-indentation]
     while (spi_is_busy(spi_d) != 0);     // wait until BSY=0
     ^~~~~
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src\SPI.cpp:384:2: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'while'
  uint16_t ret = spi_rx_reg(spi_d)<<8; // read and shift high byte
Compiling .pio\build\genericSTM32F103C8\lib73d\Ethernet_ID872\EthernetUdp.cpp.o
  ^~~~~~~~
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src\SPI.cpp:387:5: warning: this 'while' clause does not guard... [-Wmisleading-indentation]
Compiling .pio\build\genericSTM32F103C8\lib73d\Ethernet_ID872\socket.cpp.o
     while (spi_is_busy(spi_d) != 0);     // wait until BSY=0
     ^~~~~
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src\SPI.cpp:388:2: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'while'
  ret += spi_rx_reg(spi_d);            // read low byte
  ^~~
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src\SPI.cpp: In function 'spi_baud_rate determine_baud_rate(spi_dev*, uint32_t)':
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src\SPI.cpp:778:12: warning: enumeration value 'RCC_AHB' not handled in switch [-Wswitch]
     switch (rcc_dev_clk(dev->clk_id))
            ^
In file included from C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility/w5100.h:18:0,
                 from C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\Dns.cpp:8:
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:168:15: warning: '_spi2_this' defined but not used [-Wunused-variable]
 static void (*_spi2_this);
               ^~~~~~~~~~
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:165:15: warning: '_spi1_this' defined but not used [-Wunused-variable]
 static void (*_spi1_this);
               ^~~~~~~~~~
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:163:16: warning: 'ff' defined but not used [-Wunused-variable]
 static uint8_t ff = 0XFF;
                ^~
In file included from C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility/w5100.h:18:0,
Compiling .pio\build\genericSTM32F103C8\lib73d\Ethernet_ID872\utility\w5100.cpp.o
                 from C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\Dhcp.cpp:7:
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:168:15: warning: '_spi2_this' defined but not used [-Wunused-variable]
 static void (*_spi2_this);
               ^~~~~~~~~~
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:165:15: warning: '_spi1_this' defined but not used [-Wunused-variable]
 static void (*_spi1_this);
               ^~~~~~~~~~
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:163:16: warning: 'ff' defined but not used [-Wunused-variable]
 static uint8_t ff = 0XFF;
                ^~
In file included from C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility/w5100.h:18:0,
                 from C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\Ethernet.cpp:23:
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:168:15: warning: '_spi2_this' defined but not used [-Wunused-variable]
 static void (*_spi2_this);
               ^~~~~~~~~~
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:165:15: warning: '_spi1_this' defined but not used [-Wunused-variable]
 static void (*_spi1_this);
Archiving .pio\build\genericSTM32F103C8\lib3e5\libSPI.a
               ^~~~~~~~~~
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:163:16: warning: 'ff' defined but not used [-Wunused-variable]
 static uint8_t ff = 0XFF;
                ^~
In file included from C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility/w5100.h:18:0,
Compiling .pio\build\genericSTM32F103C8\lib7a6\MQTT_ID617\MQTTClient.cpp.o
                 from C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\EthernetClient.cpp:24:
Compiling .pio\build\genericSTM32F103C8\lib7a6\MQTT_ID617\lwmqtt\client.c.o
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:168:15: warning: '_spi2_this' defined but not used [-Wunused-variable]
 static void (*_spi2_this);
               ^~~~C~~~~~~
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:165:15: warning: '_spi1_this' defined but not used [-Wunused-variable]
ompiling .pio\build\genericSTM32F103C8\lib7a6\MQTT_ID617\lwmqtt\helpers.c.o
Compiling .pio\build\genericSTM32F103C8\lib7a6\MQTT_ID617\lwmqtt\packet.c.o
 static void (*_spi1_this);
               ^~~~C~ompiling .pio\build\genericSTM32F103C8\lib7a6\MQTT_ID617\lwmqtt\string.c.o
~~~~~
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:163:16: warning: 'ff' defined but not used [-Wunused-variable]
 static uint8_t ff = 0XFF;
                ^~
In file included from C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility/w5100.h:18:0,
                 from C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\EthernetServer.cpp:23:
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:168:15: warning: '_spi2_this' defined but not used [-Wunused-variable]
 static void (*_spi2_this);
               ^~~~~~~~~~
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:165:15: warning: '_spi1_this' defined but not used [-Wunused-variable]
 static void (*_spi1_this);
               ^~~~~~~~~~
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:163:16: warning: 'ff' defined but not used [-Wunused-variable]
 static uint8_t ff = 0XFF;
                ^~
In file included from C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility/w5100.h:18:0,
                 from C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\EthernetUdp.cpp:32:
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:168:15: warning: '_spi2_this' defined but not used [-Wunused-variable]
 static void (*_spi2_this);
               ^~~~~~~~~~
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:165:15: warning: '_spi1_this' defined but not used [-Wunused-variable]
 static void (*_spi1_this);
               ^~~~~~~~~~
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:163:16: warning: 'ff' defined but not used [-Wunused-variable]
 static uint8_t ff = 0XFF;
                ^~
In file included from C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility/w5100.h:18:0,
                 from C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\socket.cpp:23:
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:168:15: warning: '_spi2_this' defined but not used [-Wunused-variable]
 static void (*_spi2_this);
               ^~~~~~~~~~
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:165:15: warning: '_spi1_this' defined but not used [-Wunused-variable]
 static void (*_spi1_this);
               ^~~~~~~~~~
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:163:16: warning: 'ff' defined but not used [-Wunused-variable]
 static uint8_t ff = 0XFF;
                ^~
C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility\w5100.cpp: In static member function 'static uint16_t W5100Class::write(uint16_t, const uint8_t*, uint16_t)':
C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility\w5100.cpp:315:22: error: no matching function for call to 'SPIClass::transfer(uint8_t [8], int)'
   SPI.transfer(cmd, 4);
                      ^
In file included from C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility\w5100.h:18:0,
                 from C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility\w5100.cpp:13:
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:295:11: note: candidate: uint8 SPIClass::transfer(uint8) const
     uint8 transfer(uint8 data) const;
           ^~~~~~~~
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:295:11: note:   candidate 
expects 1 argument, 2 provided
C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility\w5100.cpp:369:29: error: no matching function for call to 'SPIClass::transfer(uint8_t [8], int)'
    SPI.transfer(cmd, len + 3);
                             ^
In file included from C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility\w5100.h:18:0,
Archiving .pio\build\genericSTM32F103C8\lib7a6\libMQTT_ID617.a
                 from C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility\w5100.cpp:13:
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:295:11: note: candidate: uint8 SPIClass::transfer(uint8) const
     uint8 transfer(uint8 data) const;
           ^~~~~~~~
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:295:11: note:   candidate 
expects 1 argument, 2 provided
C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility\w5100.cpp:371:23: error: no matching function for call to 'SPIClass::transfer(uint8_t [8], int)'
    SPI.transfer(cmd, 3);
                       ^
In file included from C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility\w5100.h:18:0,
                 from C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility\w5100.cpp:13:
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:295:11: note: candidate: uint8 SPIClass::transfer(uint8) const
     uint8 transfer(uint8 data) const;
           ^~~~~~~~
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:295:11: note:   candidate 
expects 1 argument, 2 provided
C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility\w5100.cpp: In static member function 'static uint16_t W5100Class::read(uint16_t, uint8_t*, uint16_t)':
C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility\w5100.cpp:416:22: error: no matching function for call to 'SPIClass::transfer(uint8_t [4], int)'
   SPI.transfer(cmd, 4);
                      ^
In file included from C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility\w5100.h:18:0,
                 from C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility\w5100.cpp:13:
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:295:11: note: candidate: uint8 SPIClass::transfer(uint8) const
     uint8 transfer(uint8 data) const;
           ^~~~~~~~
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:295:11: note:   candidate 
expects 1 argument, 2 provided
C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility\w5100.cpp:418:24: error: no matching function for call to 'SPIClass::transfer(uint8_t*&, uint16_t&)'
   SPI.transfer(buf, len);
                        ^
In file included from C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility\w5100.h:18:0,
                 from C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility\w5100.cpp:13:
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:295:11: note: candidate: uint8 SPIClass::transfer(uint8) const
     uint8 transfer(uint8 data) const;
           ^~~~~~~~
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:295:11: note:   candidate 
expects 1 argument, 2 provided
C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility\w5100.cpp:460:22: error: no matching function for call to 'SPIClass::transfer(uint8_t [4], int)'
   SPI.transfer(cmd, 3);
                      ^
In file included from C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility\w5100.h:18:0,
                 from C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility\w5100.cpp:13:
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:295:11: note: candidate: uint8 SPIClass::transfer(uint8) const
     uint8 transfer(uint8 data) const;
           ^~~~~~~~
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:295:11: note:   candidate 
expects 1 argument, 2 provided
C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility\w5100.cpp:462:24: error: no matching function for call to 'SPIClass::transfer(uint8_t*&, uint16_t&)'
   SPI.transfer(buf, len);
                        ^
In file included from C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility\w5100.h:18:0,
                 from C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility\w5100.cpp:13:
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:295:11: note: candidate: uint8 SPIClass::transfer(uint8) const
     uint8 transfer(uint8 data) const;
           ^~~~~~~~
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:295:11: note:   candidate 
expects 1 argument, 2 provided
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h: At global scope:
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:168:15: warning: '_spi2_this' defined but not used [-Wunused-variable]
 static void (*_spi2_this);
               ^~~~~~~~~~
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:165:15: warning: '_spi1_this' defined but not used [-Wunused-variable]
 static void (*_spi1_this);
               ^~~~~~~~~~
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:163:16: warning: 'ff' defined but not used [-Wunused-variable]
 static uint8_t ff = 0XFF;
                ^~
*** [.pio\build\genericSTM32F103C8\lib73d\Ethernet_ID872\utility\w5100.cpp.o] Error 1
================================================ [FAILED] Took 10.99 seconds ================================================
The terminal process terminated with exit code: 1

Terminal will be reused by tasks, press any key to close it.

> Executing task in folder ps30kv: C:\Users\94r4d0x\.platformio\penv\Scripts\platformio.exe run <

Processing genericSTM32F103C8 (platform: ststm32; board: genericSTM32F103C8; framework: arduino)
------------------------------------------------------------------------------------------------------------------------------ 
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/ststm32/genericSTM32F103C8.html
PLATFORM: ST STM32 6.1.0 > STM32F103C8 (20k RAM. 64k Flash)
HARDWARE: STM32F103C8T6 72MHz, 20KB RAM, 64KB Flash
DEBUG: Current (blackmagic) External (blackmagic, jlink, stlink)
PACKAGES:
 - framework-arduinoststm32-maple 2.10000.200103 (1.0.0)
 - toolchain-gccarmnoneeabi 1.70201.0 (7.2.1)
LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 37 compatible libraries
Scanning dependencies...
Dependency Graph
|-- <Ethernet> 2.0.0
|   |-- <SPI> 1.0
|-- <MQTT> 2.4.7
Building in release mode
Compiling .pio\build\genericSTM32F103C8\src\main.cpp.o
Compiling .pio\build\genericSTM32F103C8\lib73d\Ethernet_ID872\utility\w5100.cpp.o
C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility\w5100.cpp: In static member function 'static uint16_t W5100Class::write(uint16_t, const uint8_t*, uint16_t)':
C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility\w5100.cpp:315:22: error: no matching function for call to 'SPIClass::transfer(uint8_t [8], int)'
   SPI.transfer(cmd, 4);
                      ^
In file included from C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility\w5100.h:18:0,
                 from C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility\w5100.cpp:13:
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:295:11: note: candidate: uint8 SPIClass::transfer(uint8) const
     uint8 transfer(uint8 data) const;
           ^~~~~~~~
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:295:11: note:   candidate 
expects 1 argument, 2 provided
C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility\w5100.cpp:369:29: error: no matching function for call to 'SPIClass::transfer(uint8_t [8], int)'
    SPI.transfer(cmd, len + 3);
                             ^
In file included from C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility\w5100.h:18:0,
                 from C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility\w5100.cpp:13:
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:295:11: note: candidate: uint8 SPIClass::transfer(uint8) const
     uint8 transfer(uint8 data) const;
           ^~~~~~~~
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:295:11: note:   candidate 
expects 1 argument, 2 provided
C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility\w5100.cpp:371:23: error: no matching function for call to 'SPIClass::transfer(uint8_t [8], int)'
    SPI.transfer(cmd, 3);
                       ^
In file included from C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility\w5100.h:18:0,
                 from C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility\w5100.cpp:13:
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:295:11: note: candidate: uint8 SPIClass::transfer(uint8) const
     uint8 transfer(uint8 data) const;
           ^~~~~~~~
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:295:11: note:   candidate 
expects 1 argument, 2 provided
C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility\w5100.cpp: In static member function 'static uint16_t W5100Class::read(uint16_t, uint8_t*, uint16_t)':
C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility\w5100.cpp:416:22: error: no matching function for call to 'SPIClass::transfer(uint8_t [4], int)'
   SPI.transfer(cmd, 4);
                      ^
In file included from C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility\w5100.h:18:0,
                 from C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility\w5100.cpp:13:
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:295:11: note: candidate: uint8 SPIClass::transfer(uint8) const
     uint8 transfer(uint8 data) const;
           ^~~~~~~~
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:295:11: note:   candidate 
expects 1 argument, 2 provided
C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility\w5100.cpp:418:24: error: no matching function for call to 'SPIClass::transfer(uint8_t*&, uint16_t&)'
   SPI.transfer(buf, len);
                        ^
In file included from C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility\w5100.h:18:0,
                 from C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility\w5100.cpp:13:
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:295:11: note: candidate: uint8 SPIClass::transfer(uint8) const
     uint8 transfer(uint8 data) const;
           ^~~~~~~~
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:295:11: note:   candidate 
expects 1 argument, 2 provided
C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility\w5100.cpp:460:22: error: no matching function for call to 'SPIClass::transfer(uint8_t [4], int)'
   SPI.transfer(cmd, 3);
                      ^
In file included from C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility\w5100.h:18:0,
                 from C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility\w5100.cpp:13:
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:295:11: note: candidate: uint8 SPIClass::transfer(uint8) const
     uint8 transfer(uint8 data) const;
           ^~~~~~~~
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:295:11: note:   candidate 
expects 1 argument, 2 provided
C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility\w5100.cpp:462:24: error: no matching function for call to 'SPIClass::transfer(uint8_t*&, uint16_t&)'
   SPI.transfer(buf, len);
                        ^
In file included from C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility\w5100.h:18:0,
                 from C:\Users\94r4d0x\.platformio\lib\Ethernet_ID872\src\utility\w5100.cpp:13:
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:295:11: note: candidate: uint8 SPIClass::transfer(uint8) const
     uint8 transfer(uint8 data) const;
           ^~~~~~~~
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:295:11: note:   candidate 
expects 1 argument, 2 provided
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h: At global scope:
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:168:15: warning: '_spi2_this' defined but not used [-Wunused-variable]
 static void (*_spi2_this);
               ^~~~~~~~~~
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:165:15: warning: '_spi1_this' defined but not used [-Wunused-variable]
 static void (*_spi1_this);
               ^~~~~~~~~~
C:\Users\94r4d0x\.platformio\packages\framework-arduinoststm32-maple\STM32F1\libraries\SPI\src/SPI.h:163:16: warning: 'ff' defined but not used [-Wunused-variable]
 static uint8_t ff = 0XFF;
                ^~
*** [.pio\build\genericSTM32F103C8\lib73d\Ethernet_ID872\utility\w5100.cpp.o] Error 1
================================================= [FAILED] Took 3.43 seconds ================================================= 
The terminal process terminated with exit code: 1

Terminal will be reused by tasks, press any key to close it.

You are using the Maple core which is incompatible with this library. You should use the bluepill_f103c8 board target which uses the STM32Duino core.

I have personally built up a Bluepill + W5500 module setup and implemented two projects:

Both projects are working perfectly fine with the provided platformio.ini and no changes to the library have been made.

1 Like

hi
thanks to replay
I changed the core and compiled without error
I hope compile your example without trouble
am Failed to found lib without conflict and error compilation
am work for project HMI with node-red to Communicate with RTU (tow stm32 blue pill)

one more question
I am not uploading Arduino bootloader to stm32 blue pill
it’s optional that or required
I flashed the board with ST-Link (SWD)

thx

That should make no difference at all in the firmware execution.

Also note that the default upload_protocol is via STLink, but you can change it to upload via USB-DFU etc. (refer here).

1 Like