Questions tagged [stm32]

The STM32 is a family of microcontrollers from ST Microelectronics, based on the Cortex M0, M0+, M3, M4, or M7 ARM core (depending on the product line).

The STM32 is a product line from ST Microelectronics using 32-bit Cortex-M microcontrollers and/or Cortex-A microprocessors. There are a variety of microcontrollers with different power consumption and performance characteristics. Some microcontrollers also offer DSP and floating point functionality.

In addition to the line of microcontrollers, ST also offers a number of different evaluation boards and development boards. These boards contain a microcontroller on a PCB with additional support electronics and various sample sensors. The STM32CubeIDE Integrated Development Environment supports software development for these products.

Two such product lines are the Discovery kits such as the STM32F0DISCOVERY and STM32F3DISCOVERY boards and the Nucleo product line of prototyping boards.

As of Q1/2023, the family consists of:

MPU

  • STM32MP1 - Cortex A7 & Cortex M4 big.LITTLE

Low Power

  • STM32L0 - Low-Power Cortex-M0+
  • STM32L1 - Low-Power Cortex-M3
  • STM32L4 / L4+ - Low-Power Cortex-M4
  • STM32L5 - Low-Power Cortex-M33
  • STM32U5 - Ultra Low-Power Cortex-M33

High Performance

  • STM32F2 - High-Performance Cortex-M3
  • STM32F4 - High-Performance Cortex-M4
  • STM32F7 - High-Performance Cortex-M7
  • STM32H5 - High-Performance Cortex-M33 (up to 1 GHz)
  • STM32H7 - High-Performance Cortex-M7 (up to 550 MHz)

Main Stream

  • STM32F0 - Mainstream Cortex-M0
  • STM32F1 - Mainstream Cortex-M3
  • STM32F3 - Mainstream Cortex-M4
  • STM32G0 - Mainstream Cortex-M0+ (upgrading STM32F0)
  • STM32G4 - Mainstream Cortex-M4 (upgrading STM32F3)

Wireless MCUs

  • STM32WB - M4/M0 with BLE, Zigbee
  • STM32WL - M4/M0 with LoRaWAN
5104 questions
6
votes
1 answer

Ada on STM32F4 (Cortex-M4)

I just stumbled over this article stating that there exists a port of the Ada language to Cortex-M4 micro-processors. This seems exciting but unfortunately I have found no such indication on AdaCore. Our target would be a STM32F407 or STMF417…
Arne
  • 1,111
  • 2
  • 11
  • 22
6
votes
1 answer

Configuring STM32 output ports for I2C

I am currently trying to get a pair of stm32l152 (discovery kit) to communicate via I2C. (i am not using the standard peripheral library provided by STM as i want to try to implement the i2c myself..) My configuration is as followed: 7-bit…
foob
  • 293
  • 1
  • 4
  • 12
6
votes
2 answers

STM32F030 and BOOT0 pin

I'm trying to create circuit with STM32F030K6T6 microcontroler and im not sure about one thing. There is only BOOT0 pin (without BOOT1) and maybe I'm blind but I can't find description about this pin in ST documentation (I was looking in…
Tyrreus
  • 363
  • 1
  • 4
  • 12
6
votes
1 answer

USART communication with a STM32f1xx

I try to achieve an USART communication. So I connect the RX of my STM32f1 with his TX. Also I write a program for this communication. This code is composed of the following components: RCC configuration GPIO configuration USART configuration Send…
Kallel Omar
  • 1,208
  • 2
  • 17
  • 51
5
votes
2 answers

I2C slave receiver on stm32f4

I try to implement a i2c slave receiver interrupt service routine on a stm32f4. Here is my smart piece of code. void I2C2_EV_IRQHandler() { switch (I2C_GetLastEvent(I2C2)) { //The address sent by the master matches the own address of…
Jonny Schubert
  • 1,393
  • 2
  • 18
  • 39
5
votes
2 answers

setting stack pointer before jumping to app from bootloader

I am coding a bootloader for Nucleo-F429ZI. I have two different STM32 projects, one for the bootloader itself and an application to jump from the bootloader. Linker script for bootloader MEMORY { CCMRAM (xrw) : ORIGIN = 0x10000000, …
h_enes_simsek
  • 51
  • 1
  • 4
5
votes
1 answer

How to fix "could not find system library libudev" when installing cargo-flash?

Operating system: Ubuntu Command 1: rustup update --> successful Command 2: rutstup target install thumbv7m-none-eabi --> successful Command 3: cargo install cargo-flash error: failed to run custom build command for `hidapi v1.4.2` process didn't…
Sam Macharia
  • 803
  • 10
  • 18
5
votes
1 answer

STM32 bare metal USB implementation

UPDATE For anyone interested, here is a step-by-step instruction and explanation on how to build a bare metal USB-Stack, how to tackle such a project and what you need to know for each step: STM32USB@GitHub TLDR: I have a STM32G441 and want to…
CShark
  • 1,413
  • 15
  • 25
5
votes
1 answer

STM32 Cube IDE - after initial successfull launch and use now remains idle during splash screen launch stage (Linux)

I am using Ubuntu 22.04 with the official Debian installer of STM32 Cube IDE (latest version), downloaded directly from STM's website. After installing everything (default installation, which is in /opt/st/) I launched the IDE and started playing…
rbaleksandar
  • 8,713
  • 7
  • 76
  • 161
5
votes
2 answers

Interfacing TFT screen with STM32F446 using display bus interface

I'm trying to understand how to interface a TFT screen module with an STM32F4 chip on a custom PCB. Here is the module and its basic info. To write commands and data to the screen, the ILI9481 driver on the screen module uses the Display Bus…
5
votes
2 answers

ARM Cortex-M HardFault exception on writting halfword to flash using C++

I've written a project using C++ to run on ARM Cortex-M (STM32F0) but I had some problems with accessing defined buffers as class members though I resolved that by defining them as global vars. But now I'm completely stuck with this new problem…
Nixmd
  • 775
  • 5
  • 11
  • 20
5
votes
2 answers

STM32 DMA from timer count to memory

I'm using an STM32H743. I have an external clock signal coming in on a GPIO pin, and I want to very accurately measure elapsed time between each rising (or falling) edge in the external clock signal. So I set things up so that TIM4 is triggered by…
Kevin Holt
  • 775
  • 9
  • 15
5
votes
2 answers

Using debugger swo on stm32

As the title suggest I would like to use swo for debugging on an stm32F1 device without the use of st-link utils.I think I have flashed the code to send messages via swo on my chip but I can not establish a connection with the correct port as some…
Spyros Mourelatos
  • 484
  • 1
  • 8
  • 19
5
votes
1 answer

Why stack pointer need to be updated before jumping to application from bootloader

When jumping from a bootloader to the application we usually update the stack pointer to the application stack pointer and then update the program counter to Reset_Handler of application. void jump_to_application(void) { /* Function pointer to…
0xAB1E
  • 721
  • 10
  • 27
5
votes
3 answers

CS32F103C8T6 blue-pill clone - cannot flash from AC6 SystemWorkbench

I am trying to flash a blue-pill clone with a CS32F103C8T6 chip using the AC6 SystemWorkBench and a ST-LINK v2 device. It is a project built from STM32CubeMX - I am using a MacOS Mojave machine. Here is the output when trying to flash the device.…
olekeh
  • 537
  • 5
  • 10