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 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
Hi there, im using Nucleo-F446RE , ST HAL and CubeMX, and im learning to configure the clockI use HSE Bypass mode (MCO from the st-link in the nucleo), everything perfect hereIn the RM i found out that, when using HSE BYPASS mode, PH1 (OSC_OU) should be left in HI-Z state What does HI-Z means in STM32 MCUs? does it mean configuring the pin as digital input? or it means configuring the pin as analog input?Or it depends? When selecting HSE BYPASS MODE the chip image in the .ioc file gets set like this: But if i try to set PH1 (OSC_OUT) as GPIO a conflict is generated, so, how can i set the state of PH1 as HI-Z? Also, why does PH1 gets reserved and configured in the chip as OSC_OUT? is this to avoid configuring it as another thing?And finally, what it seems very weird to me, why the clock por GPIOH is enabled when CubeMX generates the code if i cant use PH1 as a normal GPIO? (im not using any other PHx PIN) Thanks in advance and sorry for the english, not a n
Here are the logs and waveforms. The slave device of IIC is unable to raise the SCL response. The data cannot be sent out either. The code is provided in the attachment.HAL_I2C_AddrCallback: 开始接收数据接收到字节[0]: 0x40接收到字节[1]: 0x03接收到字节[2]: 0x22接收到字节[3]: 0xFE接收到字节[4]: 0xBEHAL_I2C_ListenCpltCallback: 开始接收数据接收到字节[0]: 0x41HAL_I2C_ListenCpltCallback: 开始发送数据发送字节[0]: 0x05发送字节[1]: 0x62发送字节[2]: 0xFE发送字节[3]: 0xBE发送字节[4]: 0x30发送字节[5]: 0x31
Module / setup- Module: ST87M01-1301- Host: STM32-class MCU over UART, 115200 8N1, no flow control- Carrier: 1NCE NB-IoT (auto-PDP on CID 5)- AT manual reference: v3.1, 2025-10-06Current sleep-related configuration16:34:39.720 -> === AT readbacks ===16:34:39.720 -> >>> AT+CGMR16:34:39.720 -> <<< A:2.7.0-M:2.7.0-S:2.7.016:34:39.720 -> <<< OK16:34:39.720 -> >>> AT#SLEEPMODE?16:34:39.720 -> <<< #SLEEPMODE: 1,5,016:34:39.720 -> <<< OK16:34:39.720 -> >>> AT#WAKEUPEVENT?16:34:39.720 -> <<< #WAKEUPEVENT: 15,316:34:39.720 -> <<< OK16:34:39.720 -> >>> AT#SLEEPIND?16:34:39.720 -> <<< #SLEEPIND: 0C16:34:39.720 -> <<< OK16:34:39.720 -> >>> AT#RINGPIN?16:34:39.720 -> <<< #RINGPIN:0,20,1,10016:34:39.720 -> <<< OK16:34:39.720 -> >>> AT+CPSMS?16:34:39.847 -> <<< +CPSMS: 1,,,"10010100","0000111
Dear ST,Now I'm testing my VL53L7CX sensor that is on the package P-NUCLEO-53L7A1 in Autonomous Mode with integration time = 2ms, ranging freq. = 4Hz and 4X4 Resolution, the attached screen-shot represents the output current related to my integration time and it's typically 2ms.My question is about the added peaks after the integration time peak, Why could this happen?and, How can I eliminate or reduce it?Knowing that the duration of these peaks illustrated in the other screen-shot attached.Thank you.
Hello,I’m working on an STM32H757 (Cortex-M7 core, dual-core system) using SDMMC1 + FATFS (CubeMX-generated stack) and I consistently hit a blocking issue: Core issuef_mount() always returns:FR_NOT_READYor the execution breaks inside Error_Handler() depending on build/debug timing. Hardware / system contextMCU: STM32H757 (Cortex-M7, DCache enabled)SD interface: SDMMC1, 4-bit modeDMA: enabled (CubeMX SDMMC DMA configuration)External subsystem: Riverdi TFT display 12.1 inches (LTDC active)FATFS: CubeMX middleware (generic SD diskio template)No RTOS Software architectureSTM32CubeIDE latestHAL SDMMC driver (CubeMX generated)FATFS with sd_diskio.c DMA templateBSP layer present (mixed HAL/BSP abstraction)Cache enabled (I/D Cache ON, MPU default CubeMX config)Observed behaviorDuring initialization:BSP_SD_Init() returns OKSD card is physically detectedHAL_SD_GetCardState() does NOT consistently reach SD_TRANSFER_OKSD_CheckStatusWithTimeout() frequently times outFATFS layer repor
With the recent split of STM32CubeIDE and STM32CubeMX, I'd like to propose a dark mode option be added to STM32CubeMX.In consideration of the competing priorities for STM's software development team, I have two suggestions for how this proposal could be implemented:The first suggestion is the typical route: STM's in-house software development team add the UI theming and inputs to switch between dark and light mode.The second suggestion is less typical: make STM32CubeMX open source and let the larger software community assist with adding dark mode. Perhaps the source could be placed alongside other repositories in STM's current GitHub account....The benefits of adding such an option would be as follows:Consistency with STM32CubeIDE, from which STM32CubeMX was split from (STM32CubeIDE already has a dark mode)Consistency with the vast majority of other software in the industryConsistency with what has become a common user experience across operating systems, browsers, and setups in g
Follow-on from STM32F030K6T6 microcontroller with Adafruit 2478 display and touchscreen.Hello all, i have a part of code for the touch screen for the 2478 display.I have found an example made with Arduino and i have adapted It for stm32, i would like to know if my code Is fine or It has some issues to fix and what u would suggest me to do. This part Is only for the touch controller of the display but i got several questions, like how many readings i should make from the ADC? rn i do and average basically. #include "main.h" #include <stdint.h> /* ================= CONFIGURAZIONE ================= */ #define LCD_W 320 #define LCD_H 240 // PIN TOUCH (MODIFICA!) #define X1_PORT GPIOA #define X1_PIN GPIO_PIN_0 #define X2_PORT GPIOA #define X2_PIN GPIO_PIN_1 #define Y1_PORT GPIOA #define Y1_PIN GPIO_PIN_2 #define Y2_PORT GPIOA #define Y2_PIN GPIO_PIN_3 // CANALI ADC (MODIFICA!) #define ADC_CH_Y1 ADC_CHANNEL_2 #define ADC_CH_X1 ADC_CHANNEL_0 #define ADC_SAMPLES
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.