Skip to main content
Associate
August 8, 2025
Question

Which STM MCU and board do I use for my project?

  • August 8, 2025
  • 3 replies
  • 379 views

HI Team,

I am Pranathi, I am looking for a board and MCU chip for my project, I want to implement a CAN protocol between 2 STM32 boards with FSM (finite state machine) and RTOS included in it. 

Additionally I will be using a sesnor and an actuator on each STM node. Can anyone help me in chosing which MCU and STM32 board I should be using for this aim? And also if possible share a basic source code for implementing a CAN protocol.

Looking forward for your help.

 

Thanks in Advance,

Ch.Pranathi

3 replies

Andrew Neil
Super User
August 8, 2025

Tools to choose your MCU:

https://www.st.com/en/development-tools/st-mcu-finder-pc.html

https://www.st.com/en/development-tools/stm32-finder.html

https://www.st.com/content/st_com/en/stm32-mcu-product-selector.html

https://www.st.com/content/st_com/en/stm32-mcu-developer-zone/mcu-portfolio.html

Also, distributors usually have parametric search tools ...

 

Having identified a suitable MCU, go to its Product Page on the ST website, and look on the 'Tools & Software' tab - that will show you the recommended boards (probably one will be highlighted; for the full list, look under 'Product evaluation tools').

eg, picking one entirely at random

https://www.st.com/en/microcontrollers-microprocessors/stm32f401ve.html#tools-software

I would suggest that a Nucleo board might be more useful to you than a Discovery or DK.

The trouble with the Discovery & DK boards is that they tend to have a lot of extra on-board stuff - which can get in the way of you connecting the other things that you actually want to use!

The Nucleo boards are basically just the STM32 plus an ST-Link - which leaves very nearly all the pins free for you to use however you require.

 

Some basic "getting started" steps to gain familiarity with the product and the tools:

https://community.st.com/t5/stm32-mcus-products/for-better-learning-stm32-programming-and-debugging/m-p/719485/highlight/true#M260696

See also:

https://community.st.com/t5/stm32-mcus-products/for-better-learning-stm32-programming-and-debugging/m-p/719468/highlight/true#M260690

 

PS:

 


@Pranathi_ch wrote:

share a basic source code for implementing a CAN protocol.


Once you have the board, STM32CubeIDE will have a load of examples for that board - should include CAN.

 

#HowToChooseMCU #HowToChooseBoard

A complex system that works is invariably found to have evolved from a simple system that worked.A complex system designed from scratch never works and cannot be patched up to make it work.
Andrew Neil
Super User
August 8, 2025

@Pranathi_ch wrote:

I am looking for a board ... RTOS included in it. 


Note that an RTOS is purely a software component - it doesn't come as part of a board.

https://community.st.com/t5/stm32-mcus-embedded-software/does-the-stm32f429i-eval-board-come-with-freertos-installed/m-p/806598/highlight/true#M63932

 

ST's currently preferred RTOS is FreeRTOS:

https://community.st.com/t5/stm32-mpus-embedded-software-and/is-threadx-azure-rtos-officially-supported-on-the-cortex-m4-core/m-p/808749/highlight/true#M4806

 

You can use any other suitable RTOS of your choice - but the porting and integration is then down to you.

A complex system that works is invariably found to have evolved from a simple system that worked.A complex system designed from scratch never works and cannot be patched up to make it work.
Technical Moderator
August 8, 2025

if possible share a basic source code for implementing a CAN protocol.

You have the working examples in different STM32 Nucleo boards (available in STM32-hotspot), which will help you in the bxCAN configuration: 

You can also refer to the KB articles related to CAN:

In order to give better visibility on the answered topics, please click on 'Best answer' on the reply which solved your issue or answered your question. Thanks
Andrew Neil
Super User
August 8, 2025
A complex system that works is invariably found to have evolved from a simple system that worked.A complex system designed from scratch never works and cannot be patched up to make it work.