Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Dear STM32 Community, We believe that the example projects provided for the STM32Cube embedded software are a valuable resource when developing projects. We would like to better understand how developers use these examples in their workflow and explore ways to improve them. Therefore, we have a few questions we would like to ask: From where do you obtain the examples, and why? Are you working with the examples through the STM32Cube MCU packages, the STM32CubeMX Example Selector, or through GitHub? Is there a particular reason you prefer one channel over the others? How do you use the examples in your work with STM32 embedded software? Do you use the examples to learn how to use a driver or a feature, as reference code for implementation, and/or for debugging? What is working well, and what can we do to improve the examples and/or your experience working with them? You can either reply directly in this thread or feel free to send me a private message. &nb
We wish to always improve our documentation. The best reviews and critics always come from the people that read it, so we would like to use this post to collect your thoughts and feedbacks. Please share what you like, dislike, what you think is missing, etc ... /The TouchGFX team
TouchGFX 4.26.1 is now out. Please follow this link to download it.This version is a patch release and includes bugfixes of issues seen on TouchGFX Designer 4.26.1 version, as well as adding support of the new STM32H5F5 and Chrom-ART 2.Please visit our dedicated website for STM32H5 graphics to know more about high performance graphics on our most powerful Cortex-M33 MCU. Release details: Release date: March 2nd, 2026 New TouchGFX Designer Features Allow selecting a CMakeLists.txt file as the project file without requiring a STM32CubeMX .ioc file. Bugfixes in TouchGFX Designer Fix caching issue when changing text configurations and re-generating code. Fix outdated timestamp on files when importing a GUI. Fix faulty code generation when a Shape widget has two identical end points. Fix faulty code generation when a Shape widget uses an "interaction ended" callback. New TouchGFX Generator Features Support for STM32H5F5/E5 and STM32H5F4/E4 series with the
When creating a UI project, you may need widgets that are not part of the TouchGFX library. To create your own graphical element, the TouchGFX team suggests using the Custom Container approach. Since TouchGFX 4.20 it is possible to export and import Custom Containers into different projects. The TouchGFX team is working on developing new custom containers that could be useful for our own projects. You will find them under this post. The first widget is a keyboard. We hope that the idea will please you and that it will be useful for your projects ;)! We invite you to do the same. In the guide attached you will learn how to create your own widgets and how to export them. We wish to create a space where the community can find and share custom widgets. To keep this space a good place for collaboration between all of us, we invite you to share your project in a zip format which includes you widget (.tpkg) and a short document explaining your widget. Your post needs
Dear MCSDK users, The full MCSDK documentation is embedded in the Motor Control Workbench tool. Refer to Workbench tool > About > Documentations > Documentation.This document provides: Introduction: Includes startup guide links for MCSDK, HSO feature, MC Workbench and Pilot tools. User manual: Description of Motor Control features, algorithms, reported errors and procedures to address them. Motor control firmware files, functions, and data. You can also access the HTML documentation at the following location:file:///C:/_your_install_folder_/MC_SDK_x.y.z/Documentation/html/index.html Motor Control wiki page with FAQ page for MCSDK versions prior to MCSDK6.x
Dear MCSDK users, MCSDK version 6.4.0 is now available: Download It here. This version of the new Motor Control SDK 6 series (X-CUBE-MCDSK) provides mainly FOC and 6Step improvements, here are the main changes for this version: Motor Control Features: Common: Regular conversion manager (RCM) component has been modified to reduce memory footprint and to meet the requirement of synchronizing ADC conversions "regular" and "injected". 6Step: Increased 6Step firmware architecture efficiency and reduced FLASH and RAM Memory footprint Added Initial Position Detection and On-The-Fly Startup features. Added Software Current Sensing Monitoring mode supported for series STM32C0xx/F0xx/F3xx/G0xx/G4xx. FOC: New Maximum Modulation Index (MMI) computation compatible for all sensor-less or sensor algorithms. Mitigated speed overshoot during startup. Added ICS (Isolate Current Sensors) support for profiler for F3, G4, F4, F7, and L4. Added the ability to switch to/from primary to aux
The documentation of the Board descriptions format is now available on Motor Control Boards Description Wiki page, this documentation is compatible with MCSDK versions from 6.1.2. Board Descriptions are used by the ST motor-control workbench to enable users to configure their motor-control application and produce a software project that implements it following its hardware component features. Wiki Link A new documentation will arrive soon and will detail these features: Current Sensing: three-shunt-raw-currents-differential-internal-opamp-with-external-gain-and-filtered-adc-intput-hwv ICS Phase Voltage sensing feature Driver Protection feature The descVersion property is equal to 4 from version 6.2.0 of the MCSDK and the "contentVersion" property is added. For questions regarding the board manager, please respond under this post. Regards
Please go and visit our wiki pages where you can find a lot of information on our wireless product families (WB, WBA, WL) and the supported protocols: BLE, Zigbee, Thread, Matter, Lora, ... To begin your technical journey, please start from this top page: https://wiki.st.com/stm32mcu/wiki/Category:Connectivity This top page will guide you to the first steps to develop a wireless application using connectivity protocols on ST wireless microcontrollers. For BLE protocol, please visit: https://wiki.st.com/stm32mcu/wiki/Connectivity:Introduction_to_BLE_with_STM32https://wiki.st.com/stm32mcu/wiki/Connectivity:Introduction_to_Bluetooth_LE_Audio You can find information on BLE Certification, BLE Features, BLE Mesh, BLE Audio, … For Zigbee protocol, please visit: https://wiki.st.com/stm32mcu/wiki/Connectivity:Introduction_to_Zigbee You can find information on Zigbee certification, Zigbee Features, BLE-Zigbee concurrent mode, … For Tread protocol, please visit: https://wiki
Dear all, The X-CUBE-MATTER Expansion Package is now available on our official website following this link MATTER - Matter software expansion for STM32Cube - STMicroelectronics It is a reference implementation for the demonstration of Matter on STM32. It is ready for prototyping a Matter end-device on a reference development platform. Refer to STMicroelectronics Matter wiki articles at https://wiki.st.com/stm32mcu/wiki/Connectivity:Introduction_to_Matter to get started with matter for the supported STM32 platforms. Kind regards, Ouadi
In order to have a quick response to your forum posts, the best way to ask the question is:- Give the version of the MCSDK used. - Say if the problem concerns a tool (MC Workbench, Motor Pilot, Motor Profiler, etc...) - Provide picture of tools interface when is possible.- Attach the STWB6 file of the project or the JSON of the board when possible.Choose a label for the post ( Motor Pilot MC Workbench, etc...), you can select it to the right of where you write the message.Here is a template that you can reuse:[PN]: Part Number of the products used[VERSION]: Version of MCSDK[TOOL]: Name of tool ( Firmware, MC WB,MC PROFILER, etc..)[DETAILS]:symptom observed or request/question details[EXPECTED BEHAVIOR]:if related to performance then what is the target[HOW TO REPRODUCE]:input, output, steps But before entering a new post, please consider to first check our Motor Control documentation available via Work Bench Tool by clicking on About -> Documentations -> Documentation -> i
Hi,Chip: STSPIN32G0602Q (STM32G031 core + integrated 3-phase gate driver)Board: custom BLDC driver board, powered via 115VAC through an isolation transformer into the board's own AC input; the board's onboard PFC/rectifier stage converts this to the internal DC buses (HV+ ~400V DC bus, and VBUS ~50-120V DC, which is the rail actually switched by the MOSFETs under test)Purpose of this test: end-of-line (EOL) production test — statically turning on one high-side MOSFET and one low-side MOSFET on different phases (e.g. U-high + V-low) for a short, controlled period, then checking output voltage/current, to verify each MOSFET pair switches correctly before the board ships. This is a functional pass/fail check, not normal motor operation — no continuous PWM switching or motor commutation is involved.Problem: TIM1's gate outputs never turn on. Root cause traced to: BIF (break flag) is always set, so MOE can never be enabled.What happensI start a TIM1 channel (HAL_TIM_PWM_Start + HAL_TIMEx_PW
Heyho,I’m confused - or the STM32G431KBU (in QFN32) is…I’m using ADC 1 with 2 external inputs, PA0, PA1, and the internal “REFI” and temperature channel “TEMP”.All running with continuous and circular DMA in the background, no interrupts. If I need an ADC value, I simply grab it from the ADC DMA buffer.This is basically working, except for the channel sequence. Which I set manually, but have at least triple-checked the SQR1 / SQR2 values with the RM... If I set up the channel sequence in ADC1->SQR1 in the order: PA0, PA1, REFI, TEMP, then I find in the DMA buffer instead of this order: 0, PA0, REFI, TEMP→ so PA0 was “shifted”, PA1 is nowhere to be found (it is not 0, checked the GPIO via scope). If I add and insert a dummy channel “VDMY” as the first in the sequence, so that the sequence should result in VDMY, PA0, PA1, REFI, TEMP, I find this order in the DMA buffer:PA1, VDMY, PA0, REFI, TEMPAt least I get all the channels now, the measurement data is correct. So, what am I messing
so this is my data acquisition system, i want you to suggest some improvements in it. as the adc + dma ping pong buffer is working fine, but after that the conversion and its transmission via dma+uart ping-pong buffer is so much miserable. there is no synch between these buffers.here is my project:Vishwas1523/dataAcquisitionSystemPS: i am using stm32 nucleo f446re
Hello everyone,Actually I am making a data acquisition system in which my mcu takes analog data from a sensor and stores it in a buffer, and then into a 2nd buffer with the help of DMA in double buffer mode. Now i want to transfer this data via UART to my screen with the help of PuTTY with the same ping-pong architecture. For this i need to convert 12 bit adc value to data suitable for uart (8 bit). which i do with the help of a function without any issue and then store them in different two buffers. now the thing is that i want a system in which when buffer 1 is being filled by adc, buffer two will be transferred by uart and vice versa, now the main problem is that there is no sync between the buffers and the ownership. and it is mostly due to the conversion and size of buffers (uart buffers are twice the size of adc buffers) as i am using double buffer transmission mode in DMA controllers of both adc and uart.So do you think i should use single buffer transmission with circular buffe
Hello ST Team,I am evaluating the secure boot and secure firmware update solutions for the STM32H5 family and plan to implement OEMuRoT on an STM32H5F4 device.While reviewing the wiki article OEMiRoT OEMuRoT for STM32H5, I noticed that the STM32H5F4xx is not listed as a supported device family.Security:OEMiRoT OEMuRoT for STM32H5 - stm32mcuI would like clarification on the following points:Is STM32H5F4xx intentionally excluded from OEMuRoT support? Are there any hardware or security-feature limitations in STM32H5F4 that prevent OEMuRoT implementation? My target device is STM32H5F4, and I am planning a secure firmware update architecture based on Root of Trust and authenticated firmware updates. Any guidance or roadmap information would be appreciated. Thank you, RJ
Hello ST Team,We are evaluating STM32TRUSTEE-SM (Secure Manager) on STM32H5F4 devices and would like clarification regarding the external flash support architecture.From the STM32TRUSTEE-SM documentation and wiki pages, we understand that:Secure Manager provides an External Flash Profile.An External Flash Driver is referenced as part of the Secure Manager configuration flow.External firmware and data confidentiality can be enabled through OTFDEC.OTFDEC-based secure external memory access is described together with the OCTOSPI peripheral.Secure Manager supports firmware download slots located in external flash memory.However, we need clarification on the supported external memory architecture and driver model.Questions1. External Flash Interface Support restricted to memories connected through the OCTOSPI peripheral, or are other external memory interfaces also supported? Specifically, does the External Flash Profile support: Octal SPI NOR Flash, Quad SPI NOR Flash,
Hi ST Community, I’ve connected a MP23DB01HPTR MEM MIC to the STM32N6 Nucleo’s MDF1_SDI3 and MDF1_CCK0 and here is my connection. I am using“ Projects/STM32N6570-DK/Examples/MDF/MDF_AudioRecorder” as a reference and according to the information on Github, the CCK0 should be 2.048 MHz Which I am measuring almost the same frequency on the CCK0 pin of my board : 2.03393 MHz In my project, instead of sending the data to SAI, I am sending the data to USART 1, which I’ve set the BaudRate to 921600. My code has three callback functions:void HAL_MDF_AcqHalfCpltCallback(MDF_HandleTypeDef *hmdf)void HAL_MDF_AcqCpltCallback(MDF_HandleTypeDef *hmdf)void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) The USART 1 is sending the first half of the MDF buffer when the AcqHalfCpltCallback is triggered, and then the second half when the AcqCpltCallback is triggered. on my computer I wrote a python script where it is receiving the audio raw data via serial port and save it into a WAV file. However
Can anyone please pint me out to a BSDL file useful for STM32H7A3VIH6Q ? Thank youGabriele
Hi,On STM32U575CGU3, I see a reproducible +200 µA increase in current after calling MX_ADC1_Init() once. Even after HAL_ADC_DeInit(), ADC reset, and disabling VddA, the additional current does not return to the original baseline.Here is the minimal code:cint main(void){ HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); MX_GPDMA1_Init(); MX_ADC1_Init(); // +200uA increase MX_OCTOSPI1_Init(); MX_SPI1_Init(); MX_USB_OTG_FS_PCD_Init(); MX_USART1_UART_Init(); MX_ICACHE_Init(); // ADC Disable HAL_ADC_DeInit(&hadc1); __HAL_RCC_ADC1_FORCE_RESET(); __HAL_RCC_ADC1_RELEASE_RESET(); HAL_PWREx_DisableVddA(); while (1) { __NOP(); }}Questions Has anyone observed similar behavior on U5 devices (ADC bias or VREFBUF staying active after initialization)? Are there known conditions where ADC/VREFBUF analog blocks remain powered even after DeInit and VddA OFF? Any hints on additional steps required to fully shut down the analog domai
Hello Everyone,I have a two arduino boards communicating with each other on a CAN Bus. Arduino is connected to CAN Bus via MCP2515 .Both arduino are communicating correctly with each other. Here is an example of my transmitter on arduino:/*************************************************/#include <SPI.h>#include <mcp2515.h>/*******************MESSAGES DEFINITIONS*****************/#include <SPI.h>#include <mcp2515.h>struct can_frame canMsg1;struct can_frame canMsg2;MCP2515 mcp2515(10);void setup() { canMsg1.can_id = 0x0F6; canMsg1.can_dlc = 8; canMsg1.data[0] = 0x8E; canMsg1.data[1] = 0x87; canMsg1.data[2] = 0x32; canMsg1.data[3] = 0xFA; canMsg1.data[4] = 0x26; canMsg1.data[5] = 0x8E; canMsg1.data[6] = 0xBE; canMsg1.data[7] = 0x86; canMsg2.can_id = 0x036; canMsg2.can_dlc = 8; canMsg2.data[0] = 0x0E; canMsg2.data[1] = 0x00; canMsg2.data[2] = 0x00; canMsg2.data[3] = 0x08;
Hello Team,We have manufactured 500 boards using STM32WBA52CGU6. During testing, we tested 50 boards, out of which 5 boards are not advertising BLE, while the remaining 45 boards are working normally.We have attached the schematic and PCB layout screenshots for your reference.Our PCB is a 2-layer board, and we have not followed a controlled 50 Ω impedance for the RF trace. Could this be contributing to the BLE advertising issue on these 5 boards?Could you please review the attached schematic and layout and help us debug this issue? We would also appreciate your guidance on the key parameters or measurements we should checkon the failed boards compared with the working boards.
I have two boards, one with STM32F303 with CAN 2.0 and a new board (same electronic, only MCU is different) with STM32G474. Software is identical too, except for the CAN/FDCAN. So I had to migrate the software from CAN 2.0 to FDCAN Classic in order to communicate with the other system boards. In the treatment of the received frames, I noticed that the CAN 2.0 is faster in managing the communication than the FDCAN Classic. Can anyone confirm that ? and if so why does it take so long to the FDCAN classic ? As I send frames to both board, the STM32F303 program timing isn't affected, for the STM32G474 I measured a delay of some ms. Clocks are as follow:STM32F303 : CPU: 72 Mhz CAN baudrate: 500Kb/sSTM32G474 : CPU: 170 Mhz FDCAN classic baudrate: 500kb/s
Hello everyone! I got the following problem; I need to read from two 32bit addresses and write the data to three. Specifically, i am interested in the case shown in the left side of the image, where the N[0:15] increment by half word and write to the M[0:15] but it will increment by a full word. Don't worry about the reserved bytes in the HTIMx_CC1R, I checked the manual and are always at zero. I saw that the H7 can read/write with weird patters using the fifo functionality. The thing is I can't understand at all how to set it up. Is there any other better way? Thanks in advance!
hi there.I'm trying to CAN transmit on my target board.my board is not to send CAN message on stm32cubeide . but I confirmed that my board send CAN message on mbed.Can I how to send CAN message on stm32cubeide?? I intended CAN baudrate 500kbps, sampling point 75% and my apb1 clock is 18Mhz, HSE is 8Mhz, and my crystal is 8Mhz.below is printf() debug message when my board running and stop.Always debug message show me the message such as below..<Can Send Success: 1<Can Send Success: 2<Can Send Success: 3<Can Send Success: 4<Can Send Success: 5<Can Send Success: 6<Can Send Success: 7<Can Send Success: 8<Can Send Success: 9<Can Send Success: 10<Can Send Success: 11<Can Send Success: 12<Can Send Success: 13<Can Send Success: 14<Can Send Success: 15<Can Send Success: 16<Can Send Success: 17<Can Send Success: 18<Can Send Success: 19<Can Send Failmy source code attached .please check my error...regards..
Hi all,I have a CAN 2.0 network up and running with a F407 and some F103. I added a board with a G0B (fdcan). I couldn't get my hands on a FDCAN-tranceiver. I tried to get it working in classic mode (from repository example) with a CAN2.0 tranceiver. I cannot receive any message.So my question is:Is it even possible to configure the G0B to work with a classic CAN2.0 tranceiver?If yes, what would the FDCAN config look likeThank you in advance!Best regards,Philipp
ST Community highlights – April to June 2026
Already have an account? Login
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.