Get ready for the STM32 Summit 2026 | Online, November 3
Join discussions in the Product Forums. Ask questions, learn from your peers, and share insights on ST solutions to accelerate your design journey.
Most recent activity
Hi I am trying to use the AEK-POW-BMSWTX to read cell voltages from an Optipower OPR50006S50 Lithium Ion battery. I only want the cell information, not interested in battery management itself. I'm using SPI2 from an STM32G474RE. I have spliced pin C0 to the GND EXT pins and the GND terminal of the battery, then used C1 through C6 for cell wires. C6 is spliced to C7 through to C14, finally the positive terminal of the battery is connected to VBAT. The issue I am finding despite no MISO comms from the board is LED D2 goes off after 60 or so seconds. My SPI function is as below: void BMS_Read(uint8_t *rxBuf, uint16_t len) { uint8_t wake[5] = {0x55,0x55,0x55,0x55,0x55}; uint8_t rxBuf[8]; HAL_GPIO_WritePin(SPI2_BMS_CS_GPIO_Port, SPI2_BMS_CS_Pin, GPIO_PIN_RESET); HAL_SPI_Transmit(&hspi2, wake, 5, HAL_MAX_DELAY); for (uint16_t i = 0; i < len; i++) { uint8_t dummy = 0xFF; HAL_SPI_TransmitReceive( &hspi2, &dummy, // generate clock &rxBuf[i],
I have a project that is using custom hardware with a STM32G0B1CBT6 processor. The code is developed using STM32CubeIDE and STM32CubeMX. However, there are times when I am unable to run a debug session and I'm seeing (very) occasional Hard Faults.I have a diagnostic serial port and have successfully modified my Hard Fault Handler to dump additional information out that port.So what I'm after is some code that can read registers and/or the stack to provide additional information that I can use (along with the map file, etc) to determine where my Hard Fault is happening.Can anyone point me in the right direction? All my searches have shown me code that references registers I can't seem to find in the docs.Thanks.
Hi,I am setting up SBSFU on our STM32H750. I want to test the RDP and WRP security protections.Steps taken so far:I have enabled WRP and RDP Level 1 by setting the option bytes through cubeprogrammer and enabling SFU_WRP_PROTECT_ENABLE & SFU_RDP_PROTECT_ENABLE in app_sfu.hI have enabled SFU_TEST_PROTECTION in app_sfu.h Note:There are several test cases in sfu_test.c that I am using. The tests in questions are attached below:TEST_ERASE_FLASH is failing. Output:I am not sure why this would be. Does anyone have any advice?
Hi everyone,I am struggling to get MotionFX (9-axis sensor fusion) working on an STM32L476G-DISCOVERY board using the onboard LSM303C (Acc/Mag) and L3GD20 (Gyro).The Problem: Despite the library being initialized and updated in the main loop, all outputs (data_out.rotation, quaternion) remain strictly at 0.0.Current Status & Observations:Hardware CRC: Enabled and verified. The CRC->DR register changes value constantly, proving that MotionFX_update is processing data.Timing: The loop is running at 100Hz. I've tested with both a calculated dt and a fixed dt = 0.01f, but the output remains zero.Input Data (data_in):Acc: ~1.0g on Z-axis when flat (normalized to g).Gyro: Normalized to dps (values around 0-5 dps at rest).Mag: Values around -500 µT (normalized using 0.58f LSB for 16G scale).Memory: mfx_buffer is 2450 bytes and aligned to 32-bit (uint32_t array).Configuration: * mfx_knobs.output_type = MFX_ENGINE_OUTPUT_NED;Library enabled in both 6X and 9X modes.
Hi everyone,I’m currently working with the CR95HF and looking into using the provided DLL (CR95HF.dll) for PC-side communication.From the documentation and software packages I understand that a DLL is provided to interface with the CR95HF demonstration board (). However, it seems this DLL was originally built for older environments and is typically installed in x32 systems, which suggests it may be a 32-bit library.I searched the community and found a previous discussion where someone asked about x64 compatibility ( Solved: CR95HF DLL for x64 - STMicroelectronics Community ) and was provided with source code instead of a precompiled DLL.So my questions are:Is there now an official x64-compatible version of the CR95HF DLL available?Or is the recommended approach still to request/use the source code and rebuild the DLL for x64 systems?If rebuilding is required:Is there any official guidance or updated project for generating a 64-bit version?Thanks in advance for your help!
Hello , i would like to know how can we set the pwm channels in stm32cubemx as well as the serial wire debug , because i want to set up a project with STM32C5A3RGT6 but under the debug we have no 2 wire serial wire debug option. Edit: Moved from Introducing STM32CubeMX2, a new flavor of STM32CubeMX tool
Hello,I have two technical questions regarding the lis3dh accelerometer behavior and interrupt configuration.1) Are the values I read from the LIS3dh in m/s²???? Exemple :::Accel [LIS3dh] 28807220458ns (-7.300384, -1.942303, -5.712095)2) Interrupt logic (INT1_CFG :: XLIE / YLIE / ZLIE)When I configure an interrupt threshold, for example 5 m/s², and enable the axis event bits in INT1_CFG XLIE / YLIE / ZLIEDo the Low events correspond to the following type of comparison?X < threshold, Y < threshold, Z < thresholdOr do they correspond to:|X| < threshold, |Y| < threshold, |Z| < thresholdFor instance, if I have the following measured values and the interrupt threshold is set to 5 m/s²:Would this condition trigger an interrupt or not, according to the configured AOI ,XLIE / YLIE / ZLIE (i put 1 for this register)???Accel [LIS3DH] 29380340576ns (-18.442175, -19.566559, -19.461311)Thanks for your response
I have an old project developed with the STM32CubeIDE, which I would like to import into VSCode. I attempted to run "Convert Eclipse STM32CubeIDE Project", and the converter created some files in the destination folder.Yet, the conversion fails with this error message:2026-04-22 10:23:09.874 [Info] [ide-project-convert] Starting project conversion... 2026-04-22 10:23:10.173 [Info] [ide-project-convert] cube wrapper version: 0.10.2 2026-04-22 10:23:10.193 [Info] [ide-project-convert] Invoking STM32CubeIDE Eclipse exporter... 2026-04-22 10:23:18.988 [Info] [ide-project-convert] Generating project... 2026-04-22 10:23:19.054 [Error] [ide-project-convert] [ { instancePath: '', schemaPath: '#/required', keyword: 'required', params: { missingProperty: 'configurations' }, message: 'must have required property 'configurations'' } ] 2026-04-22 10:23:19.055 [Error] [ide-project-convert] /Users/me/projects/private/flipper/firmware-vscode/stm32cubeide-export.json does not conform to the schema
Hi,I am using IIS2ICLX MEMS accelerometer in an IOT device.The IIS2ICLX is soldered on a PCB that sends data to internet every 10min.To measure the zero-g level of both x and y axis, I suspend the device from the ceiling so that the PCB (and the accelerometer) is perfectly horizontal and and vibration-free.I noticed that the zero-g level changes if I briefly touch the device, and wait for the device to return to its horizontal position (the temperature of the device does not change).Does anyone has an explanation ? I there a way to minimize this effect by using two redondant accelerometers, with a 90 degre rotation between them ?Thanks for your help.
Hi,I'm using STM32H5F5LJHxQ. External HSE Oscillator is 48MHz. RTC clock mux is set to HSE_RTC, divider set to "/48" and the tool shows correctly that RTC clock is 1000kHz (48MHz / 48).During my tests I discovered a wrong RTC time, error ~2%. (1.2 seconds deviation per minute)In the generated function HAL_RTC_MspInit() is see: (49 instead of the expected 48)PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_HSE_DIV49; If I change the configuration in CubeMX to create a divider of 47, the correct RCC_RTCCLKSOURCE_HSE_DIV47 is generatedIf I change the configuration in CubeMX to create a divider of 49, the correct RCC_RTCCLKSOURCE_HSE_DIV49 is. generated.If I manually set the correct RCC_RTCCLKSOURCE_HSE_DIV48 in the sources, the RTC runs correctly. Regards,Gunnar BohlenHMS Networks
Hi. I have been looking at the internal operation of MEMS devices and am looking for information on how this sensor takes the reading from the mechanical parts. I am trying to find out if this sensor uses capacitive sensing or frequency drift and time period for one sample to be acquired from the MEMS structure. The available documentation does not list much information of this and any additional information would be great. Thanks.
After updating from TouchGFX 4.24.x to 4.26.0, the code generated cannot be compiled w/o manual correction - there are commas missing: const touchgfx::AbstractShape::ShapePoint<float> downArrowDisplayPoints[4] = { { 0.0f, 0.0f }, { 80.0f, 0.0f }, { 40.0f, 10.0f }{ 40.0f, 10.0f } };downArrowDisplay.setShape(downArrowDisplayPoints);downArrowDisplay.setVisible(false);add(downArrowDisplay); upArrowDisplay.setPosition(80, 61, 80, 10);upArrowDisplay.setOrigin(0.0f, 0.0f);upArrowDisplay.setScale(1.0f, 1.0f);upArrowDisplay.setAngle(0.0f);upArrowDisplayPainter.setColor(touchgfx::Color::getColorFromRGB(217, 141, 0));upArrowDisplay.setPainter(upArrowDisplayPainter);const touchgfx::AbstractShape::ShapePoint<float> upArrowDisplayPoints[4] = { { 40.0f, 0.0f }{ 80.0f, 10.0f }, { 0.0f, 10.0f }, { 40.0f, 0.0f } };upArrowDisplay.setShape(upArrowDisplayPoints);upArrowDisplay.setVisible(false);add(upArrowDisplay); upArrowLed.setPosition(80, 191, 80, 10);upArrowLed.setOrigin(0.0f
Hello everyone. I would really appreciate if someone could help me sort out a really annoying issue i have with a new STM32WB5MMGH6 based board i made.On this board i have two sensors connected to the same SPI interface (hspi2) with different CS pins to address the sensors. Here's the schematic sections of the two sensors : MS5607 : LSM6DSV320XTR with an auxiliary IIS2MDCTR tied directly to it (for the test board, the magnetometer is not soldered yet):I'm currently on test phase, and the MS5607 is responding correctly. But the LSM6DSV320XTR does not respond at all. i'm not even getting the whoami ID (i get a 0).For the SPI configuration i have this : For the 2 Chip Select pins i have this config : I don't understand where the problem comes from. Could someone help me asap ? I'm losing hope :(
Question split from this thread. Hi , Can you also provide some info on how to set pwm through timer channels ?
See attachment, field gets erased every time I re-generate code using STM32 CubeMX.problem seen on versionsSTM32CubeMX version 6.16.1uVuion/Keil version 5.43This has been ongoing for a while so problem does exist on older versions of both.
Hello , I was planning on using the new STM32C5A3RGT6 for my new project but after reading the comments regarding the stm32cubemx2 , i am reconsidering this decision. I also saw that zephyr is providing support for stm32c5. My question would be then what would be a good source for learning stm32cubemx2 because coming from stm32cubeide 1.17 it is a big change.
Hi,I've been experimenting with the High Sensitive Observer using the B-G473E-ZEST1S and STEVAL-LVLP01 boards to control a BLDC motor. So far we have good results, however sometimes the HSO loses control, especially at very low speeds (<10 electrical rpm). To overcome this a restart is required so the pol pulse is triggered and the rotator angle can be found. I was wondering if there are strategies to fuse the HSO feedback with the Hall sensor to overcome these problems? I known the ZeST solutions solves this as well but this is not publicly available yet and for safety reasons we are required to have an physical sensor to read the motor position.Thanks,Tom de Winter
Hello,STM32CubeIDE.Is it possible to show hints (description of the function, description of the parameters of the function, description of the return value) when calling function?I made this function (see Figure 1) and made documenting comment. When I calling this function or I hover the cursor over the function name a tooltip with the function code pops up, but I want to see description of the function (@brief parameter from documenting comment, see Figure 1).Figure 1
hello ST Community, I'm trying to send commands as indicated in the AN3155 manual via UART with Teraterm on the NUCLEO-H755ZI-Q for CM7. system bootloader application note (AN3155) First, I tried establishing UART communication with the STM32CubeProgrammer, and it worked while Boot0 = 1 on the USART3 pins. But I'd like to establish the same communication via UART using Teraterm serial. As soon as I set the bootloader state to Boot0 = 1, I send the command 0x7F, and I get no response on the terminal. What did I do wrong? Thanks for supports
Hello, maybe someone can check this,it seems to be incorrectly generated code. In my application for STM32H5xx I want to use ADC3. void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc) { GPIO_InitTypeDef GPIO_InitStruct = {0}; RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0}; if(hadc->Instance==ADC3) { ... .../* Peripheral clock enable */ __HAL_RCC_ADC_CLK_ENABLE(); This macro does not enable ADC3. #define __HAL_RCC_ADC_CLK_ENABLE() do { \ __IO uint32_t tmpreg; \ SET_BIT(RCC->AHB2ENR, RCC_AHB2ENR_ADCEN); \ /* Delay after an RCC peripheral clock enabling */ \ tmpreg = READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_ADCEN); \ UNUSED(tmpreg); \ } while(0) I think something like this is required: #define __HAL_RCC_ADC3_CLK_ENABLE() do { \ __IO uint32_t tmpreg; \ SET_BIT(RCC->AHB2ENR, RCC_AHB2ENR_ADC3EN); \ /* Delay after an RCC peripheral clock enabling */ \ tmpreg = READ_BIT(RCC->AHB2ENR, RCC_AHB2ENR_ADC3EN); \ UNUSED(tmpreg); \ } while(0)
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
Hello everyone,I am a research scholar in High Energy Physics and currently working on a scintillation-based muon detector using SiPMs.My setup:- Board: STM32 NUCLEO-F446RE- Sensors: 2 SiPMs- Signal conditioning: Op-amp amplification + peak detection- Output: Analog pulses to STM32 ADCObjective:I want to acquire signals from two SiPM channels using ADC and implement coincidence detection (i.e., detect events when both signals occur within a very short time window).My questions:1. What is the best approach for precise coincidence detection on STM32?- ADC polling vs interrupt vs DMA vs timer-based sampling?2. Since SiPM pulses are very fast (ns scale), how can I reliably detect coincidence using ADC (which is slower)?3. Would it be better to:- Use analog comparators + GPIO interrupts?- Or external coincidence logic (hardware)?- Or timer input capture method?4. What timing resolution can realistically be achieved using STM32F446RE?I am looking for a robust and research-grade solution suit
STM32C092CCT6 : TCAN1463-Q1: TXD Dominant but No CAN Output — Bit0 Errors, nFAULT OK, Normal Mode Confirmed Hello everyone,I am facing an issue where the CAN transceiver (TCAN1463-Q1) does not drive the CAN bus even though the STM32 FDCAN peripheral is transmitting correctly and the transceiver is confirmed to be in Normal mode. Hardware SetupNode 1 — STM32 Daughter Board (Transmitter)MCU: STM32C092CCT6 (Cortex-M0+, 12 MHz SYSCLK)Transceiver: TCAN1463-Q1Connections:TXD → PB1 (FDCAN1_TX, AF3, Very High Speed)RXD → PB0 (FDCAN1_RX, AF3)EN → PC6 (HIGH = enabled)nSTB → PB12 via hardware inverterPB12 HIGH → nSTB HIGH → Normal modenFAULT → PC7 (active-low, pull-up to 3.3V)Power:VSUP = 5VVIO = 3.3VNode 2 — ReceiverRaspberry Pi CM4 + MCP2518FD (SPI, 40 MHz crystal)TCAN1463-Q1SocketCAN interfaceBoth nodes are connected with proper 120Ω termination.FDCAN ConfigurationClassic CAN (1 Mbps)FrameFormat = Classic CANClock = 12 MHz (PCLK1)Prescaler = 1TSEG1 = 8TSEG2 = 3Sample Point = 75%Proto
Hello,I purchased the Zest development board kit. I have personally tried HSO and found it quite good. I heard that the Zest algorithm can achieve full torque output at zero speed. I am very interested in this. Could I apply for it personally?
Dear community members,STM32H7S78-DK: USBX standalone (CDC ACM + PIMA) works in HS now but PIMA / MTP is not supported in standalone mode in USBXCurrently, it is not possible to use the PIMA/MTP class in USBX in standalone mode (without an RTOS). The MTP implementation depends on Azure RTOS ThreadX, and there is no official support for running it in bare-metal configurations.When attempting to use it in standalone mode, the stack returns:#define UX_FUNCTION_NOT_SUPPORTED 0x54This is also reflected in the official documentation:USBX Getting Started – Bare-metal support matrices
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.