Blue Pill + STM32Cube doesn't work

I’ve been struggling with it for a few days already and I still have no clue how to make it work with PlatformIO:
Using Arduino framework for bluepill_f103c8 board works fine, LED is blinking:

#include <Arduino.h>
#define LED PC13

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);  // turn the LED on (HIGH is the voltage level)
  delay(1000);                      // wait for a second
  digitalWrite(LED_BUILTIN, LOW);   // turn the LED off by making the voltage LOW
  delay(1000);                      // wait for a second
}

.ini

[env:bluepill_f103c8]
platform = ststm32
board = bluepill_f103c8
framework = arduino
board_build.f_cpu = 72000000L

But I need to use stm32cube framework. However, after upload it doesn’t do anything.

#include "stm32f1xx_hal.h"

#define LED_PIN GPIO_PIN_13
#define LED_GPIO_PORT GPIOC
#define LED_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE()

void LED_Init();

int main(void) {
  HAL_Init();
  LED_Init();

  while (1) {
    HAL_GPIO_TogglePin(LED_GPIO_PORT, LED_PIN);
    HAL_Delay(1000);
  }
}

void LED_Init() {
  LED_GPIO_CLK_ENABLE();
  GPIO_InitTypeDef GPIO_InitStruct;
  GPIO_InitStruct.Pin = LED_PIN;
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStruct.Pull = GPIO_PULLUP;
  GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
  HAL_GPIO_Init(LED_GPIO_PORT, &GPIO_InitStruct);
}

void SysTick_Handler(void) { HAL_IncTick(); }

.ini

[env:bluepill_f103c8]
platform = ststm32
board = bluepill_f103c8
framework = stm32cube
board_build.f_cpu = 72000000L

In both cases I use STLink for upload.

Do you have this code in a .c or a .cpp file? If it’s in a .cpp file, you need to mark it as extern "C" so it will find the symbol for the interrupt handler properly.

Why activate the pullup resistor on the GPIO pin? Should be GPIO_PULL_NONE or smething.

More importantly, this doesn’t match the used GPIO port at all: It should be GPIOC.