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
We are a bachelor project group developing a BLE Direction Finding handheld "tracking compass" using AoA on STM32WB09 devices.We have reached a stage where BLE communication, CTE reception, antenna switching, and IQ report generation all appear functional, but the resulting IQ data seems physically incorrect and causes unstable angle estimation.We would appreciate suggestions on possible RF or IQ-processing issues we may have overlooked. Environment:MCU:PCB1) STM32WB09KE (Compass)PCB1) STM32F446RE as processing unitPCB2) STM32WB09KE (Tracking Tag)STM32CubeIDE Version: 2.1.0Toolchain / IDE: STM32CubeIDE. In this page, ST provides a .zip folder containing existing application projects that STM32WB0-series users can import, edit, and build directly. Version: 1.4.0. Project used as basis: BLE_DirectionFinding_Central_Locator. Most of the edits done was through the .ioc file, app_ble.c, app_entry and gatt_client_app.c. We can provide these files later if necessary.The ap
What does the appearance of KF50BD-TR look like ? Does it have pin 1 marker?Can you provide the relevant drawings?
Hi, I'm using the STM32C071K8U6's built-in USB DFU bootloader for one-time production programming. After flashing, PA11/PA12 (USB D+/D-) are used as regular GPIO outputs to control two P-MOSFETs (each with their 100kΩ gate pull-ups to 4.2V). The USB functionality is not used by the end customer, but the USB connector remains accessible for charging. This means a PC's USB cable may be connected during normal use allowing for potential signal injected into those traces resulting into the PMOS being turned on/off by the PC if it detects there is a USB device connected and tries to enumerate it. The two core issues: a) When a user plugs into a PC for charging, we need to guarantee the host does not attempt enumeration, and that nothing the host does on D+/D- interferes with our GPIO-driven MOSFET gates. b) because the PA11 and PA12 traces also go all over the PCB - i.e. they form very long stubs - we need to make sure this does not prevent the USB from working properly d
The STM6905 datasheet says in Table 2 that there is an internal 10k pull-up on RST#, which seems wrong since that's an open-drain output. Then in Section 2.6 and in Section 3 it says that an external pull-up to VCC should be used.
Hello,I would like to ask about the UFQFPN32 package footprint for the STM32G491KEUx device.We are using the following part:Part number: STM32G491KEUxPackage: UFQFPN32While reviewing the datasheet and package information, we found that the actual UFQFPN32 package appears to have an exposed pad (EP) on the bottom side of the package.However, in the datasheet/package information we reviewed, the UFQFPN32 package information and footprint example do not seem to include the EP or the EP land pattern.In particular, the UFQFPN32 package information is shown in the document from page 166 to page 168, but we could not find any information regarding the exposed pad or the recommended PCB land pattern for the EP.Could you please confirm the following?Is the exposed pad information for the STM32G491KEUx UFQFPN32 package omitted from the datasheet/package information?For actual PCB design, should we include an EP land pattern for the UFQFPN32 package?If the EP land pattern should be included, shou
Hi everyone, I'm facing issues connecting an external debugger to the NUCLEO-H7S3L8 board (STM32H7S3L8). Current Setup: Board powered via CN5 (ST-LINK USB) JP1 closed (to disable on-board ST-LINK) External debugger connected to CN1 (MIPI20 connector) SWD mode at low speed (500 kHz to 1 MHz) Correct power sequence: Power CN5 first → wait for COM LED (LD8) to stabilize → then connect external probe What I have already tried: BOOT0 = 1 (jumper on CN11[5-7]) to enter bootloader mode and halt using external debugger Internal ST-LINK works fine when JP1 is open (using STM32CubeProgrammer) Problem: The external debugger is unable to connect or halt the CPU, please guide me how to fix it. Thanks,regards,Surender.
Hello All,Apologies in advance for sounding like a noob (that is because I am). I am building a wearable device as a hobby, and I need a 6-axis gyroscope with IMU. Ideally, the device should have more than one IMU, but considering that I have absolutely no idea how to even assemble the device, I am reaching out to this forum to hopefully get an initial idea of what it is I need, so as to hopefully set me off in the right path. The sensors I am thinking in using: Initially I have been looking at ASM330LHHTR and A3G4250DTR, strictly because they are small. The idea I have is to begin testing with a simple setup connected to power, but to eventually make it battery-powered.A bit more information about what I want to measure: eventually I want to set up a strip of these IMUs in a straight line, and have them measure at the same time, and feed it to something like a raspberry pi so as to transmit BT signal. To make a setup where I have IMU --> [something] --
Hi STM teams , i have developed a custom NFC board using the STM32L476RCT6 and the ST25R3916B NFC reader, based on the reference design of STEVAL-D25R16B (https://www.st.com/resource/en/schematic_pack/steval-25r3916b-schematic.pdf). I am using an external sticker antenna (Manufacturer Part Number: V2089-013-A-01). Currently, the board detects only the STEVAL-SMARTAG2 NFC tag card (https://www.st.com/resource/en/schematic_pack/steval-smartag2-schematic.pdf), while other NFC cards are not being detected. However, when I connect the custom NFC board to the DK antenna, it successfully detects the STEVAL-SMARTAG2 card as well as all other NFC cards. so i think issue may be sticker antenna Could anyone suggest a suitable sticker antenna or recommend an alternative external antenna solution? I have attached pictures of the sticker antenna, the STEVAL-SMARTAG2 card, and the other NFC tags for reference.
Hello everyone,I am learning STM32 embedded development using an STM32 Blue Pill (STM32F103C8T6).I installed STM32CubeIDE, but when I go to File -> New, I only see:STM32CubeIDE Empty ProjectC ProjectC++ ProjectSTM32 CMake ProjectI do not see the normal “STM32 Project” option.Because of this:.ioc file is not being generatedCubeMX integration appears to be missingAdditional details:STM32CubeIDE version: 2.1.1Windows 11STM32 Blue Pill boardST-Link is detected successfully in Device ManagerI already tried:reinstalling packsrefreshing package descriptionsrestarting the IDEreinstalling STM32 packagesBut the issue still exists.Could someone please guide me on:Whether my installation is incomplete?How to restore the “STM32 Project” wizard?Whether I installed the wrong version of STM32CubeIDE?Thank you.
Product/Tool: STM32CubeProgrammer CLI v2.19.0Target MCU: STM32U385RG-Q (Nucleo-U385RG-Q board)Connection: SWD, mode=UR (Under Reset)TZEN: 0 (non-secure)================================================================================SUMMARY================================================================================We are unable to program a full 16-byte OTP row using STM32_Programmer_CLI.Only the first double-word (8 bytes) of a row can be written. Any attempt toprogram the second double-word of the same row fails silently (word remains0xFFFFFFFF) or is rejected by the flash controller, even though the row shouldnot be locked until both double-words are programmed.Per the reference manual, the OTP lock granularity is one 16-byte row(2 double-words). We expect to be able to program both double-words within arow independently (each in a single operation), provided neither has beenwritten previously. However in practice, programming the first double-wordappears to immediately lock the
Hello, I have a device with a variable message stream in UART and there is the issue that I cannot know when it's stream ends due to gaps (so a single ReceiveIdle won't work). The device has clear framing via an interrupt so I use that.The final system will have limited DMA channels so keeping a ReceiveIdle always set is wasteful.As such there is the following workflow:HAL_GPIO_EXTI_Callback gets a signal there is a new message. That arms the DMA listener. On DMA callback, HAL_UART_Receive_IT is armed to catch possible remainder of message.On HAL_UART_Receive_IT it arms another DMA to get the rest of the stream (instead of doing a byte by byte interrupt, which is slow)We get another callback and stop the DMA/IT or we loop on IT and DMA.The issue is if this workflow is safe? Is there an issue arming DMAs on callbacks or IT on DMA callbacks?Thank you
I am currently experiencing the following problem on Windows 11:I have STM32CubeCLT 1.20.0 installed, respective directories are correctly added to the front of system PATH, no problems when (cross)compiling with CMake, Ninja and arm-none-eabi toolchain for an STM32 target.I have to run unit tests on my host machine, for that i use MSYS2 with the UCRT64 environment. To integrate into a common CMake script, i cannot only use the MSYS2 environment from the UCRT64 shell, i therefore added C:\msys64\ucrt64\bin to the back of system PATH.With this constellation, i cannot use the gcc provided by MSYS2 UCRT64. I used this simple setup:main.c#include <stdio.h> int main() { printf("Hello, World!\n"); return 0; } CMakeLists.txtcmake_minimum_required(VERSION 3.10) project(test) add_executable(test main.c) Then running cmake -B build -S . -G Ninja leads to cmake -B build -S . -G Ninja -- The C compiler identification is unknown -- The CXX compiler ident
Title updated to better reflect the root problem; was originally 'Riverdi 12.1" + TouchGFX 4.25 + FATFS not working'Hi everyone,I am working on a Riverdi 12.1" display board based on STM32H7 with TouchGFX 4.25 generated project.Environment:TouchGFX 4.25STM32CubeMX generated projectSTM32CubeIDERiverdi 12.1" boardSTM32H7FreeRTOS enabledDebugging with ST-LINKProblem:BSP_SD_Init() returns MSD_ERROR_SD_NOT_PRESENT.In main.c:uint8_t res; res = BSP_SD_Init(); risultato = res; if(res != 2) { Error_Handler(); }The value stored in risultato is:MSD_ERROR_SD_NOT_PRESENTAdditional important behavior:When I start a FreeRTOS task that accesses FATFS/SD, the display becomes completely black and TouchGFX no longer shows images.This is my task:void StartDefaultTask(void *argument) { FIL file; UINT bw; for(;;) { SCB_CleanDCache(); SCB_InvalidateDCache(); if(BSP_SD_Init() == MSD_OK) { if(f_mount(&SDFatFS, SDPath, 1) == FR_OK) { if(f_open(&file, "log.txt", FA_OPEN_ALWAYS | FA_WRITE
this thread is split from this thread hello Last question, I just saw the example but it's not for the STM32H755ZI-Q series, are the examples still compatible with this STM32H755 series? Thanks
Hello Team,Good Day !After Cloneed our two version of Hardware ( STM32F3 Series based ) by compititor , we are now more focused on Hardware Security aspects.Can you Pls Suggest which STM32 MCU is the MOST Secure among all available MCU ? Considering Firmware Protection / physical Attacks ? I would appriciate , if Higher Level Architecture with Device name is Provided.We are also open for Paid Consultancy if any 3rd party ready to help... Regards ,Bhupendra
Hi, I'm searching for the best Rx sniff mode as suggested in AN6362: I'm able to use carrier sense (RSSI_THR, CS_F interrupt) and SQI (SQI_THR, SYNC_VALID_F interrupt) but PQI never works.The MCU is in WFI state, sequencer not used.I have changed the value of PQI_THR but PQI_INFO is always zero and the PREAMBLE_VALID_F interrupt is always received a few microseconds after CS_F interrupt.Thank you in advance!
I am trying to do multidrop with STM32WL5MOC and STM32U031. I have some issues:[1] When WL5MOC is the only active MCU in the circuit (U0 is not powered on) I cannot connect M4 core using TargetSel=0x04970041 option:I can connect to M0+ core using tagetsel (STM32_Programmer_CLI -c port=swd TargetSel=0x04970041 ap=1 mode=hotplug)If I try the same with ap=0, CLI cannot connect to M4 core and retires with ap=1 and then connects M0+ core againThere is no issue when not using targetsel option and U0 is disconnected. I can connect both WL5 cores with ap=0 and ap=1 options.[2] If I power on U0 and try multidrop, I cannot connect any of the cores of WL5:I can connect U0 with targetsel option(STM32_Programmer_CLI -c port=swd TargetSel=0x04590041 ap=0 mode=hotplug).. At first CLI cannot connect with ap=0 and retries with ap=1 and then connects.Interestginly If I try ap=1 directly, it cannot connect to U0 (STM32_Programmer_CLI -c port=swd TargetSel=0x04590041 ap=0 mode=hotplug)Am I missi
Hi everyone! I'm working with the NFC07A1 board associated with the Nucleo L053R8, with the intention of being able to perform ADC readings. I configured everything(ADC, pin, NFC07A1, etc.) on CubeMx, and then, opened the generated file on CubeIde. After writing the code for reading the ADC in the main file, i tried to run it, but even though there were no errors in the code, the "startup_stm32l053r8tx.s" tab opens by pointing to line 51 (as well as Reset_Handler: ldr r0, =_estack). Consequently, the values acquired via the ADC are not printed on the screen, but the only thing printed on the sreen is "welcome to x-cube-nfc7 example". Could you help me solve the problem?
I am trying to interface STM32U5G7VJT6 with MT25QL128A using OCTOSPI1 in Quad SPI mode, but I still cannot store/run TouchGFX assets from external flash memory. Current configuration: Memory Type: Micron Device Type: Flash Device Size: 24 Clock Prescaler: 2 Clock Mode: Low Sample Shifting: Half Cycle Wrap Size: Not Supported Delay Block: Bypassed Screenshot attached.Could someone please check if I missed any important configuration like memory-mapped mode, linker settings, TouchGFX asset location, BSP/init sequence, or MT25QL128A command setup?
I have a TouchGFX (latest version) application using STM32H753 and an OLED with GRAM. Runs under Threadx.I found the development process quite complex but had no problem eventually building the project with all the subsystems apparently working properly.BUT....The very simplest part of the task I cannot complete. I want C code in a ThreadX Thread to initiate the redraw of the next frame in the single display buffer (after which the DMA would be initiated from the frame buffer to GRAM...). I need to access the OSWrappers.hpp in order to provide "Vsync" to TouchGFX which I can't do from "C". After days and days, I can assure you there is no apparent way to call the relevent C++ method from the C code within Threadx. In other words there is no 'hook' on the "C" side to make the function call. Any suggestions?None of the Google-search documentation on this subject makes any sense.Thank youGerry
Hello Team,We need to interface a CT with a microcontroller for current measurement. The required measurement range is 0.01 A to 60 A with a 10 mA resolution.Please find the attached block diagram for better understanding. We require the reference circuit for the blue highlighted section.Awaiting your response soon.Thank you in advance.Image placed in line for easier viewing:
Looking through the STM32Cube codebase, I’ve noticed a fairly strange but thoroughly consistent coding style. Indentation size is 2 spaces, using space for indentation; bracing style is more similar to Allman’s style rather than K&R and 1TBS. Naming style is also uniform, using CamelCase for external identifiers such as functions, structure fields, and global variables; along with a bit of Hungarian notation here and there (for example, pTxBuffPtr).This style is mechanically consistent through STM32Cube firmwares, drivers (LL, HAL, and CMSIS), code generated by STM32CubeMX, and BSP drivers. Even example projects follow suit.Could STM employees please share with us some documentation or guideline regarding this coding style? Looking for something similar to the Linux Kernel Coding Style and the Google C++ Style Guide. Configurations for formatter tools such as clang-format would also be appreciated.
Moved from the STM32 MCUs forum - this has nothing to do with MCUsFor this circuit, how can I implement the tactile switch functionality using the dual-LED feature? Can any one explain how the circuit should be designed for a 28V input? I am unable Implement this LogicLike My requirement is 28V I am getting upto 42mA So This switch Should Receive and that will be working like the Tactile and need to Glow the Once pressed one will glow if anoother Press other LED should Glow . How to Implement This Logic please reply fast
I am working on converting projects from STM32F745VET to STM32U575VGT. Part of the startup routine of the projects is checking for flash errors using the CRC peripheral. The STM32F7 projects initialize a DMA channel in the following way: void MX_DMA_Init(void) { /* DMA controller clock enable */ __HAL_RCC_DMA1_CLK_ENABLE(); __HAL_RCC_DMA2_CLK_ENABLE(); /* Configure DMA request hdma_memtomem_dma2_stream1 on DMA2_Stream1 */ hdma_memtomem_dma2_stream1.Instance = DMA2_Stream1; hdma_memtomem_dma2_stream1.Init.Channel = DMA_CHANNEL_0; hdma_memtomem_dma2_stream1.Init.Direction = DMA_MEMORY_TO_MEMORY; hdma_memtomem_dma2_stream1.Init.PeriphInc = DMA_PINC_ENABLE; hdma_memtomem_dma2_stream1.Init.MemInc = DMA_MINC_DISABLE; hdma_memtomem_dma2_stream1.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD; hdma_memtomem_dma2_stream1.Init.MemDataAlignment = DMA_MDATAALIGN_WORD; hdma_memtomem_dma2_stream1.Init.Mode = DMA_NORMAL; hdma_memtomem_dma2_stream1.Init.Priority = DMA_PRIORITY_LOW; hdma_memtomem_dma2
ST moderator: post split from this thread. Hello mƎALLEm, Thank you for your confirmation on this issue. I would like to provide some additional information. I have also encountered the same problem on the STM32F405RGT6. In STM32CubeMX, when I configure both HSE or LSE to "Bypass Clock Source" mode, the tool insists on reserving PH1 (OSC_OUT) or PC15 (OSC32_OUT) as RCC pins. It blocks me from configuring them as regular GPIOs, even though the hardware (as you've confirmed) supports it. Furthermore, I tested this on the STM32F446RE and STM32F446RC using the latest CubeMX, the problem still exists on those devices as well. Regarding the internal tickets you mentioned (220390 for documentation, 222721 for CubeMX), may I kindly ask: Has the CubeMX fix (ticket 222721) been implemented in any release yet? If not, is there an estimated timeline for when we can expect this fix? I understand if you cannot share internal details, but any update would be very helpful fo
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.