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
I am looking for an EEPROM device that has the UID but also supports the 256-byte identification page.I was lead to believe that densities less than 1M support either/or, but greaterthan/equal to 1M does support both.However, from what I can tell from the datasheet(s), the -F version (M24M01E-F) says: "The device offers an additional 256-byte page, called the identification page. This page can be used to store sensitive application parameters, which can later be permanently locked in read-only mode."But the -F version does not have section 4.5 so it does not have UID. datasheet for version -U (M24M01E-U) says "The device also offers an additional 256-byte identification page. This page stores a 128‑bit (16‑byte) unique factory-programmed serial number, locked in read-only mode at factory delivery."And in section 4.4 says "This is an additional 256-byte page, permanently locked in read-only mode. The user can read it by issuing the read identification page instructi
Hello, in an earlier post it was suggested to reset the FDCAN for full error recovery using RCC_APBRSTR1.FDCANRST Bit This bit seems to be global for all FDCAN instances. Is it correct that full error recovery in one FDCAN instance is not possible without interrupting traffic in the other instance - as all (or both in case of stm32g0b1) instances have to be reset? t
Hello,I'm having an issue for a few latest versions of clangd. I was hoping this issue would be resolved in newest update of VS Code extension - clangd v1.0.5., but still with no success. Issue: I'm using two Configurations in CMake -> Configure. Configurations are defined in CMakePresets.json like this:I'm using define as this: I'm switching configuration via CMake->Configure->Select Configure Preset.Now, switching Configuration on clangd v1.0.2 will highlight/fade non-used define correctly. Switching to clangd version v1.0.4, it's no longer working correctly.I have set the setting on v1.0.4 as such:Opacity is 0.5. If I change the Configuration, the Opacity no longer works on the code segment:But, if I go to settings and just enter the value 0.5, it starts working again, untill the next Configure change.This issue in not on v1.0.2, only at v1.0.4 and v1.0.5.
Hello all, Split from this thread: I'm using an STM32U5G9 and I need to read files from a USB stick. I don't want to use ThreadX because I have to keep this application small. How can I achieve this if UsbX and FileX are supposed to be used only with ThreadX and not in standalone mode? Thanks for your help. Best regards, Julien
Dear community,I am looking for help to have TFM ported for nucleo_u385rg_q so that I can build the tfm secure and non secure images and do a secure boot on this board. The closest board is b_u585i_iot02a which is a stm32u5 variant. But there are many low level code required for this in trusted-firmware-m repo. Is there a work done by someone that I can use for my work? Any pointers as to how to accomplish this. Thanks in advance for your support.
In an Edge AI audio project that I'm working on, there is SAI2 peripheral that stops audio transmission after a while when the AI algorithm in the while loop of the main.c has done some inferences.The AI algorithm code was generated with Cube AI Studio and, when STM32CubeAI_Studio_AI_Process() is commented, the SAI peripheral works normally without interruptions.The board used is a NUCLEO-N657X0-Q.The version of software used is:-ST Edge AI Core: version 4.0.0-STM32CubeIDE: version 2.0.0-Cube AI Studio: version 1.1.0I've tried to search on internet for a solution and there is no material concerning it! I've tried to ask for help in other posts, but nobody helped me. Can somebody try to explain why and find a solution? I'm desperate and I don't know what to do for my project but withdraw.
Hi,How do I serve request Get Source Capabilities Extended? I'm using STM32G0B1 with a port configured as SRC.When a SINK sends the Get Source Capabilities Extended the STM PD library responds with 'Not Supported' and my code is not aware that this even did happen. Is there way to intercept and serve this request? At least the callback structure does not appear to have direct support for this. USBPD_DPM_ExtendedMessageReceived is never called. /* CAD callback definition */ static const USBPD_PE_Callbacks dpmCallbacks = { USBPD_DPM_SetupNewPower, USBPD_DPM_HardReset, USBPD_DPM_EvaluatePowerRoleSwap, USBPD_DPM_Notification, USBPD_DPM_ExtendedMessageReceived, USBPD_DPM_GetDataInfo, USBPD_DPM_SetDataInfo, USBPD_DPM_EvaluateRequest, USBPD_DPM_SNK_EvaluateCapabilities, USBPD_DPM_PowerRoleSwap, USBPD_PE_TaskWakeUp, #if defined(_VCONN_SUPPORT) USBPD_DPM_EvaluateVconnSwap, USBPD_DPM_PE_VconnPwr, #else NULL, NULL, #endif /* _VCONN_SUPPORT */ USBPD_DPM_EnterErrorR
A couple of weeks ago STM32Cube disappeared off my computer. I went a got the install file for the most recent version (2.1.1). Since I have installed this when I try to import an old project into the workspace or use MX to generate code when trying to configure the pin outs to start a new project it keep trying to import lots of additional projects giving prompts that the project is old, it will be removed the new version will be installed. It then tries to import the STM32072B_EVAL project and hangs up.All the projects I'm trying to work with at the moment are based on the NUCLEO-F413 board.These are the imported projects, none of these are the project I'm trying to import.This is when it hangs.
Hello all,There might be a possible bug in HAL_UART_DeInit(). When calling HAL_UART_DeInit() when it is already initialized could lead to CPU starvation. Assume that an interrupt fires after calling __HAL_UART_DISABLE(huart); and before huart->Instance->CR1 = 0x0U; the interrupt is going to keep firing provided that some conditions are met. I was able to run a debug session and saw that only the interrupt was firing.From the ref. manual -> Note: If TE bit is reset and no transmission is on going, the TC bit is immediately set.This means that the TC bit is always going to be set and the interrupt is constantly going to fire regardless of clearing the TCF in ICR. The reference manual also mentions to ensure TC bit is being set before calling __HAL_UART_DISABLE(huart).I am running into this issue when TE is reset and TXIE is set after calling __HAL_UART_DISABLE(huart). This happens extremely rarely but I am able to reproduc
Looking for something to try. I'm want to recover from a failed firmware update of an MLite-880 from Elecevolve after their their 1-click installer. Elecevolve suggested a manual install using the firmware binary and STM32CubeProgrammer. I can put the device in its "DFU FW update mode" and connect to the device from the STM32CubeProgrammer using USB. After connect, the log shows:08:45:07 : STM32CubeProgrammer API v2.22.0 | Windows-64Bits08:45:35 : Disconnected from device.08:46:01 : USB speed : Full Speed (12MBit/s)08:46:01 : Manuf. ID : MALAHITEAM08:46:01 : Product ID : Malahit-Lite DFU08:46:01 : SN : 305B376E313308:46:01 : DFU protocol: 1.108:46:01 : Board : --08:46:01 : IAP08:46:01 : UPLOADING ...08:46:01 : Size : 1024 Bytes08:46:01 : Address : 0x800000008:46:01 : Read progress:08:46:01 : Data read successfully08:46:01 : Time elapsed during the read operation is: 00:00:00.053When I click Start Programming, literally nothing happens except the progress bar at the bottom previous
is there a template for developing a custom bootloader that uses the lpuart?Has the application firmware the ability to trigger a bootloader state so I can upload the new application firmware into stm32g051g8?What are the changes that I have to do on the application firmware?Thank you all.
Hi everybody.I have a problem with my Arduino GIGA R1 + Giga Display shield, configured by CubeMX. I configured the external RAM and flash and it works fine. I also successfully configured TouchGFX.My only remaining problem is the startup of the board. When I power it up, it doesn't boot. Even the ST-Link can't see the MCU. I must start it with BOOT_O at 0 (there is a button on the board) and it enter in bootloader mode and the DFU connection works. I can then connect the programmer, flash the Arduino firmware and after that, I can program/debug via ST-Link, I can reset it it still working. I verified the BOOT_ADDRESS it's on the good memory and not changed by Arduino firmware. As it work under reset, I presume memories are well configured.I can't find what could prevent the core to start. Both core start well on reset (verified with onboard LEDs) but nothing happen on power on. Does anyone have an idea of what could fail or give me some hints on what to look
Can anyone explain this footer note in the electirical characteristics sheet for the STM32F777xx STM32F778AxSTM32F779xx. on page 110.2. 216 MHz maximum frequency for 6 suffix version (200 MHz maximum frequency for 7 suffix version). I am using the STM32F779NI. Is the suffix 7 or 9? I dont see it specificed anywhere. Thanks!
Hello ST Community,I am working on the NUCLEO-N657X0-Q board with a TrustZone project configured in STM32CubeMX with three contexts: FSBL, AppSecure (AppS), and AppNonSecure (AppNS). The FSBL is working correctly and jumping to AppS successfully.I was having an issue with the SAU Configuration. As per the wiki article, "How to start with RIF on STM32N6 MCUs" https://wiki.st.com/stm32mcu/wiki/Security:How_to_start_with_RIF_on_STM32N6_MCUsI configured the SAU region. I configured the FLEXRAM, AXISRAM1 and AXISRAM 2 in STM32Cube IDE. But it stays disabled when I tried to generate code. My partition_stm32n657xx.h file looks like :How to resolve this issue?
After porting the application "STM32Cube_FW_U5_V1.8.0\Projects\B-U585I-IOT02A\Applications\SBSFU" to our own board we have everything operational apart from the ability to invoke the local loader in production mode (RDP2).I have reverted to the original B-U585I-IOT02A board and project and have a similar issue so I am wondering if this is broken or we have misunderstood something. The loader can be invoked in TFM_DEV_MODE with RDP0 but not in production mode with RDP2. The SBSFU application runs fine.Changes from the default STM SBSFU project settings we used to test this on B-U585I-IOT02A1) In SBSFU_Boot project remove the TFM_DEV_MODE pre-processor symbol definition2) In boot_hal_cfg.h >> #define TFM_TAMPER_ENABLE NO_TAMPER3) In boot_hal_cfg.h >> #define #define TFM_OB_BOOT_LOCK 04) In flash_layout.h >> //#define MCUBOOT_PRIMARY_ONLY (definition commented out)5) In flash_layout.h >> #define MCUBOOT_APP_IMAGE_NUMBER 26) In hardening.sh
Hi,I have a OTP provisioning script that wrote OTP 1 with value 0x000000ff, executing a partial close of security state B. The board now passes ROM/FSBL/OP-TEE/U-Boot but resets when the Linux kernel probes the first RIF-protected peripheral (HPDMA3). Disabling HPDMA3 in DT causes the same reset on HPDMA2, indicating closed-state RIF policy is being enforced globally regardless of the device tree configuration applied by OP-TEECan the board be returned to a open state using an rma procedure? Kind Regards,Jack Redpath
Hi all, I've developed an external loader for STM32H563ZIT6 nucleo board for W25Q128JV external memory. I've followed the ST guide on how to implement it and it's currently working on cube programmer:verified mass erase, download of a .hex file, verify through data read and everything is ok. When I load the external loader into the debugger section of my main program, flagging initialize and enable flags, the debugger gives me errors; attached the .txt file with the console log. I've added a gpio pin on the init() function of the loader to check if the init starts when loading through debugger, but the led have never tourned on. Can someone please give me a hand to solve this problem? Thanks
Has anyone had success installing the Cube IDE on a Raspberry Pi 5? I first got the error message "Installation dir cannot be temporary one: /home/my_name/Downloads/makeself_dir_o70WRx"I tried various workarounds suggested by Gemini, ultimately creating new directory/opt/stm32_installermoving the unzipped file to this new directory and then trying .../opt/stm32_installer$ sudo ./file_name.shIt went right ahead and created a new temporary folder in opt/stm32_installer and failed in the same way again!If anyone has succeeded in getting the Cube IDE to work on a R Pi 5, please let me know how you did it.Thanks for reading this far.
I have installed version 13.3.rel1, clean the files and re compile the code :I have a linker error "undefined reference" to a function although the function referenced in the files and declared in the H file who was included. " C:/ST/STM32CubeIDE_2.0.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/bin/ld.exe: ./Core/Src/stm32u0xx_hal_msp.o: in function `HAL_PCD_MspInit':C:/Users/../Electronics/../Software/USB_CDC_U0/USB_CDC_U0/Debug/../Core/Src/stm32u0xx_hal_msp.c:102:(.text.HAL_PCD_MspInit+0x4c): undefined reference to `MX_USB_CDC_Init'collect2.exe: error: ld returned 1 exit statusmake: *** [makefile:65: USB_CDC_U0.elf] Error 1"make -j12 all" terminated with exit code 2. Build might be incomplete.15:33:51 Build Failed. 2 errors, 0 warnings. (took 13s.995ms)I have tried the following:1. I have tried changing the file order in "
Hello , i wanted to know what the process of debugging projects generated by Cube Ai Studio ? The automatic flash from cube ai studio to the board works , but when i wanted to debug the exported projected via stm cube ide , it doesnt work , can u please share a tutorial of whats the recommended process ?Im using the nucleo n657x0-q board
Connected STEVAL_$MKI243AA board to a nucleo-g491re board using 4 wire spi interface. The spi bus is setup to run @ 146 Kbits/sec. Reading back bad data. WHO_AM_I is 0x48PIN_CTRL is 0x3E Not sure but seem like the device is power
I am working with the MDF peripheral and find this to be a great peripheral. However the CubeMX generated code for multiple DMA based filters is not correct.I am using two filters with DMA and CubeMX generates the following descriptors:MDF_HandleTypeDef MdfHandle0;MDF_FilterConfigTypeDef MdfFilterConfig0;MDF_HandleTypeDef MdfHandle1;MDF_FilterConfigTypeDef MdfFilterConfig1;DMA_NodeTypeDef Node_GPDMA1_Channel1;DMA_QListTypeDef List_GPDMA1_Channel1;DMA_HandleTypeDef handle_GPDMA1_Channel1;DMA_NodeTypeDef Node_GPDMA1_Channel0;DMA_QListTypeDef List_GPDMA1_Channel0;DMA_HandleTypeDef handle_GPDMA1_Channel0; When starting the application I found that both MdfHandle0 and MdfHandle1 refer the same DMA handle, handle_GPDMA1_Channel1. Likewise both handle_GPDMA1_Channel0.Parent and handle_GPDMA1_Channel1.Parent refer the same filter handle, MdfHandle0.This is caused by generated function HAL_MDF_MspInit which is called when starting a filter using HA
hello ST Community, Is it possible to change the RDP "Read Out Protection" level from level 1 to level 0 without erasing the flash data? I've currently been able to change the level from RDP level 1 to level 0 for Nucleo-H755ZI-Q, but changing the level causes a mass erase of the flash drive. Is it possible to avoid this? If so, is there a code example? Thanks for your support.
Hello,I am working on the boot process and security of the STM32H757.For my tests, I have placed the two boot addresses for the two cores (ADD0 and ADD1 for CM7 and CM4) in the internal flash memory, with an ISR vector at each boot address :ADD0: standard ISR vector calling the standard Reset_Handler, which in turn calls the main function g_pfnVectors: .word __initial_spTop /* Use internal RAM for stack for calling SystemInit. */ .word Reset_Handler .word NMI_Handler .word HardFault_Handler .word MemManage_Handler .word BusFault_Handler .word UsageFault_Handler ... and ADD1: virtually the same ISR vector but calling BootPin_Handler instead of Reset_Handlerg_bootPinVectors: .word __initial_spTop .word BootPin_Handler .word NMI_Handler .word HardFault_Handler .word MemManage_Handler .word BusFault_Handler .word UsageFault_Handler ... Everything seems to be working properly, at least up until the security test.When RDP is set to level 0 or 1, everything is fine and
I’m working on STM32F405RGT6, receiving audio from ICS43432 (MSB First, 24bit on 32 bit frame).sing Circular DMA (double buffering) to read it in. After 3 days of debugging and millions of mem corruptions and stackoverflows later I finally managed to get the pipeline to work without MemCorruptions.Basically my implementation:I have a UItask, that handles button presses and changes the system states. The StartWriteAudioTask() starts the DMA and creates a .wav file. Also sets the systemState to STATE_RECORDING. DMA fills the buffer and gives semaphore to my MicTask, which basically does an endian conversion and writes a wav block. Just in case I also implemented a copy of the audiobuffer, because DMA might overwrite before I can manage to write it to a wav block. Using the debugger I see that my state machine logic and start/stop works fine, file initialization works as well and even the file appears and is playable. But the tim
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.