HAL Library 27- Identification for STM32Fxxx

If you wanna take a control on your software (secure your software by selecting package you want, device you want and others) you can identify STM32Fxxx device. This library allows you to read several things from device, like unique ID, flash size, package type, device type and maybe more. I’ve ported my old library to HAL based drivers, which now supports STM32F0xx, STM32F4xx and STM32F7xx series.


Read more about new HAL libraries


  • Read device type with software,
  • Read flash size in kB,
  • Read device package type
    • Not supported on all devices!
  • Read unique ID in BYTE, HALF-WORD and WORD modes,
  • Read device revision


  • HAL
  • TM
    • STM32Fxxx HAL
    • defines.h configuration file

Functions and enumerations

Full functions and enumerations can be found on ID API site.


Examples for receiver and transmitter with or without interrupt pin are available on my Github account, where you can take a look at main.c file for more informations.

Download all libraries below.


Owner of this site. Application engineer, currently employed by STMicroelectronics. Exploring latest technologies and owner of different libraries posted on Github.

You may also like...

Read before commenting!

Before you make a new comment, make sure you agree with things listed below:

  • - Read post to make sure if it is already posted what you are asking for,
  • - Make sure you have the latest version of libraries used in your project,
  • - Make a clean and grammatically correct written message,
  • - Report as many details as possible, including what have you done so far,
  • - Do NOT post any code here. Use Pastebin,
  • - Do NOT post any error codes here. Use Pastebin,
  • - Specify STM32Fxxx family and used Discovery/EVAL/Nucleo or custom made board,
  • - Make sure your clock is set correct for PLL,
  • - If you are using my HAL drivers, please check this post how to start.
Comment will be deleted on breaking these rules without notification!