sorry we are not native speakers, so the content may not be clear. We just want to share with you!
Arduino IDE is famous as a simple programming tool with a large development community, this article will guide you to program STM32 Arduino IDE.
See more:
STM32 MCUs
The STM32 family of 32-bit microcontrollers based on the Arm® Cortex®-M processor is designed to offer new degrees of freedom to MCU users. It offers products combining very high performance, real-time capabilities, digital signal processing, low-power / low-voltage operation, and connectivity, while maintaining full integration and ease of development.
The unparalleled range of STM32 microcontrollers, based on an industry-standard core, comes with a vast choice of tools and software to support project development, making this family of products ideal for both small projects and end-to-end platforms.
Read more about the benefits of the 32-bit Arm Cortex-M7 processor for MCUs here.

What is Arduino IDE
The open-source Arduino Software (IDE) makes it easy to write code and upload it to the board. This software can be used with any Arduino board.

Where is stm32 usually programmed?
We can code stm32 at:
STM32CUBEIDE


STM32CubeIDE is an all-in-one multi-OS development tool, which is part of the STM32Cube software ecosystem.
Keil C
IAR
Cocos Code IDE
we need to have driver: https://www.st.com/en/development-tools/st-link-v2.html
All of the above software are used quite commonly, but require programmers to have good knowledge with C language. So today ESPITEK guides you through a fairly familiar tool that is STM32 programming on the Arduino platform.
Prepare:
Arduino IDE: download here
Install STM32 Boards Manager on Arduino
Introducing STM32 Boards
Built upon:
STM32Cube MCU Packages include:
- The HAL hardware abstraction layer.
- The Low-Layer (LL) APIs.
- CMSIS device definition for STM32.
CMSIS: Cortex Microcontroller Software Interface Standard packaged for Arduino IDE: https://github.com/stm32duino/ArduinoModule-CMSIS
GNU Arm Embedded Toolchain: Compiler and library for Arm Cortex-M provided by The xPack GNU Arm Embedded GCC: https://github.com/xpack-dev-tools/arm-none-eabi-gcc-xpack
Support programming of STM32 boards:
Nucleo 144 boards
Nucleo 64 boards
Nucleo 32 boards
Discovery boards
Eval boards
STM32MP1 series coprocessor boards
Generic STM32F0 boards
Generic STM32F1 boards
Generic STM32F3 boards
Generic STM32F4 boards
Generic STM32H7 boards
Generic STM32L0 boards
3D printer boards
LoRa boards
Electronic Speed Controller boards
Generic flight controllers
Garatronics boards
Midatronics boards
Install STM32 on Arduino environment to be able to program STM32 with Arduino
- Open Arduino IDE > File > Preferences.
- . At “Additional Board Manager URLs” enter https://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_index.json – Note: if a URL already exists, separate it with a “,“.

3. Choose Tool > Board > Boards Manager…

4. Choose “Contributed” and install “STM32 Cores“.

5. Choose board in Tool > Board to start program STM32 Arduino.


Install STM32CubeProgrammer
You need to download and install the STM32CubeProgrammer if using the Upload method via SWD (STLink), Serial or DFU.
Upload code
After the installation is complete, we can start programming with Blink example
- Connect the STLink charger circuit to your board.
- Choose “Tools > Upload Method > SWD”

3. Choose “File> Examples > 01.Basics > Blink“

4. Upload

Results
