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 use cubemx to generate code for STM32CubeIDE, compile is OK, but the initial process run fail with HAL_Delay function, the HAL_GetTick() always return 0 so the program blocked here. attached is my .ioc file, any anyone help for thie issue?
hello ST Community, I'm developing the bootloader for the STM32H755 microcontroller from a specific flash memory address of 0x08010000. I also modified the USER_VECT_TAB_ADDRESS definition in the file 'system_stm32h7xx_dualcore_boot_cm4_cm7.c', as follows: /************************* Miscellaneous Configuration ************************/ /* Note: Following vector table addresses must be defined in line with linker configuration. */ /*!< Uncomment the following line if you need to relocate the vector table anywhere in FLASH BANK1 or AXI SRAM, else the vector table is kept at the automatic remap of boot address selected */ #define USER_VECT_TAB_ADDRESS #define FLASH_BANK1_BASE 0x08010000U #if defined(USER_VECT_TAB_ADDRESS) #if defined(CORE_CM4) /*!< Uncomment the following line if you need to relocate your vector Table in D2 AXI SRAM else user remap will be done in FLASH BANK2. */ /* #define VECT_TAB_SRAM */ #if defined(VECT_TAB_SRAM) #define VECT_TAB_BASE_ADDRESS D2_AXISRAM_BA
Dear STMicroelectronics Team,I am looking for an STM32 microcontroller for a new project. My main requirements are:At least 4 SPI interfacesAt least 2 USB interfacesCould you please suggest suitable STM32 part numbers that meet or come close to these requirements?Thank you for your support.Best regards,DZ
Hi all,We have a product using a STM32L451CEU6. We have gone through low rate initial production and it has met requirements but the customer has requested a change. We are experimenting with increasing the system clock speed the device is running at by changing the internal PLL settings. The device is running from the HSE, a 25 MHz crystal oscillator. It works without issue in the baseline clock configure shown below. When we try and change the N multiplication values in the PLLs to any other value, something appears to go wrong during the setup phase of our application code, and it appears to lock up. We have a custom serial bootloader but we cannot access it at this point, so we have to reflash completely using STM32 ST-LINK Utility and a STLINK-V3 programmer. This occurs whether we increase or decrease the N values e.g. N values of 15 or 17 do not work. This occurs whether we edit the N values in the code directly, or change them via CubeMX and regenerate the code. If we chang
Hi All,I'm currently developing a project using an STM32N655. I'm using a 1024x600 px screen. The image format is ARGB8888. Naturally, my frame buffer takes up approximately 2.5 MB. I needed to reduce the size of the CMD list.My application doesn't have vector graphics or fonts. Can I reduce the size of the CMD list as much as I want? Will this affect performance?Also, it's not possible to double flash with internal RAM while running a screen of this size. However, would creating frames of different sizes affect the FPS? Currently, the frame rate is 32ms. Best Regards,Onur
Hello, I am using different ST MCUs from few years and already have a wide set of development boards, tools and JTAG emulators and so far did not experienced any troubles to attach new board (even custom made) to CuveIDE and to flash and debug my solutions... until this week.I've deceded to get some more experience in low power SubGHz solutions from ST and ordered two NUCLEO-WL33CC1 development boards (Mouser store) and also some Chinese modules based on STM32WL33 (AliExpress).Now I have few different STM32WL33 based boards and 3 different available debug interfaces - J-LINK (stand-alone), ST_LINK V2 (stand-alone) and ST_LINK V3 (embedded in NUCLEO-WL33CC1).The problem is that there is no any combination of boards and JTAGs that can connect to STM32CubeIDE.So far there is only one partial success - Using STM32CubeProgrammer + ST_LINK V2 and Chinese modile - I can connect, flash and verify some ELF file: 08:47:13 : UR connection mode is defined with the HWrst reset mode08:47:1
Hello all, I explain you my problem the best I can. I have a project with the MCU STM32U575RGT6 The project has TouchGFX and FreeRTOS. After the initializations of the peripherals, I have the next calls, so the while(1) in main.c is not executed. As you can see in the next image. So for the moment the only main loop I have detected in the application is the timer interruption. In CubeMX I have 3 timers defined: TIM17, which is been assigned to the system as the timebase source: And timers 2 and 4 with the same exact parameters in CubeMX: (timer3 is related to an encoder....) I initialize the corresponding interruptions. The problem is that in the interruption HAL_TIM_PeriodElapsedCallback I never get the call of the timer 4 instance. Any help will be welcome.
Hi. I'm looking for an STM32 with a lot of GPIO triggered DMA channels. I need 8 channels that trigger when a pin changes state, and which can read/write to GPIO registers and DMA registers. It's for implementing a bus interface where I need to read address pins and write them into the lower 16 bits of DMA address registers, and use pin transitions to trigger GPIO state changes (GPIO data values, GPIO direction bits). Are there any parts that can do that? The M0+ series doesn't have enough DMA channels that can be triggered by GPIOs. The M3 and M4 doesn't seem to allow triggering from GPIOs.
Hello,I have managed to lock a couple of Nucleo H503 boards and, while they are not very expensive, I would like to try and understand the problem so we can avoid it on production boards.Although I have been experimenting with setting security options (to provisioning and closed, with a password), I don't think the problem is with security as the programmer Discovery mode is unable to even detect the device.My code checks the security setting and changes it if not closed, so would normally only run on the first pass.First, it checks if the password data is in the OTP memory and if not, writes it and locks the block. Since reading unwritten OTP memory causes a bus fault, I use the block lock bit setting as an indication that the OTP has been written.I then compare the OTP data with the expected values and, if correct, set the state to Provisioning then Closed.I have stumbled across a few things that seem to help or cause problems during this process:The password data is 32 bytes but I p
I have changed the ThreadX system timebase on an STM32H7 from 10 ms to 1 ms (i.e., the RTOS tick is now 1 ms). The application is quite large and makes extensive use of ThreadX services such as thread delays, semaphores, mutexes, event flags, and timeouts in various system calls, all of which are specified in ticks. With this change, the real-time duration of existing delays and timeouts is effectively reduced (for example, a delay that was previously 1 second now becomes 100 ms), so I would like to understand whether these values need to be scaled accordingly or refactored using time-based conversion macros to preserve behavior. In addition, the system uses NetX Duo, which runs on top of ThreadX, and I would like to confirm whether NetX Duo fully depends on the same ThreadX tick and whether changing the tick period to 1 ms has implications for network timing, such as TCP timeouts, retransmissions, or protocol timers. Finally, I am interested in best practices and potential risks, such
Hi,I am using STM32G070RB for a modbus based product. The code is complete but i am facing issues that on some of the controller the code does not work and it gets stuck in the HAL_DELAY() function because the systick interrupt are not getting through.Strange and concerning thing is that the code works on many controllers without problem but on few of them random controllers we are facing this issue.I have tried setting the nBOOT_SEL, nBOOT1 and nBOOT0 in the code so that the vector table address get set correctly.void ConfigureBootToUserFlash(void) { // Unlock the Flash memory control register if (HAL_FLASH_Unlock() == HAL_OK) { // Unlock the Option Bytes if (HAL_FLASH_OB_Unlock() == HAL_OK) { FLASH_OBProgramInitTypeDef obInit = {0}; // Read current option bytes HAL_FLASHEx_OBGetConfig(&obInit); // Check if nBOOT_SEL and nBOOT0 are already configured if (!(obInit.USERConfig & FLASH_OPTR_nBOOT_SEL) || // nBOOT_SEL not set (obInit.USERConfig & FLASH_OPTR_nBOOT0
Hi, Here i post a driver for SSD1306 128X64 Oled Display. You must enable I2C configuration void I2C_ConfigurationMaster(void) { GPIO_InitType GPIO_InitStructure; I2C_InitType I2C_InitStruct; /* Enable I2C and GPIO clocks */ if ((I2C_Type*) SDK_EVAL_I2C== I2C2) { SysCtrl_PeripheralClockCmd(CLOCK_PERIPH_I2C2 | CLOCK_PERIPH_GPIO, ENABLE); } else { SysCtrl_PeripheralClockCmd(CLOCK_PERIPH_I2C1 | CLOCK_PERIPH_GPIO, ENABLE); } /* Configure I2C pins */ GPIO_InitStructure.GPIO_Pin = SDK_EVAL_I2C_CLK_PIN; GPIO_InitStructure.GPIO_Mode = SDK_EVAL_I2C_DATA_MODE; GPIO_InitStructure.GPIO_Pull = DISABLE; GPIO_InitStructure.GPIO_HighPwr = DISABLE; GPIO_Init(&GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = SDK_EVAL_I2C_DATA_PIN; GPIO_InitStructure.GPIO_Mode = SDK_EVAL_I2C_DATA_MODE; GPIO_Init(&GPIO_InitStructure); /* Configure I2C in master mode */ I2C_StructInit(&I2C_InitStruct); I2C_InitStruct.I2C_OperatingMode = I2C_OperatingMode_Master; I2C_
Moved to CubeMX forum as this is about the CubeMX functionality - even though it's within CubeIDE.hello everyone. I'm trying to code my H7 chip. In the .ioc shen I try to generate code I take this error. (I'm using CubeIDE 1.19.0) then I turn back and look at my Clock configuration, only this HSI button has a issue. and ı dont know how to fix this and is there any problem with the HSI usage. also the other of all the clock config is :I couldtn find same problem in the forum. or a solution.
Hello,STM32CubeMX2 looks good and I started my first STM32C5 Project.But what I miss: The Power Consumption Calculator. It was a helpful and often used tool in STM32CubeMX and I could find it in the new Generation 2.Is it planned to be integrated in future releases?Thanks!Markus
Subject: Performance difference between GCC (-O2) and Keil ARM Compiler in motor control applicationDescription:I am currently developing a motor control application using STM32F303 and comparing the performance of two development environments: STM32CubeIDE (GCC ARM toolchain) and Keil µVision (ARM Compiler).Hardware & Software Environment:MCU: STM32F303STM32CubeIDE Version:2.1.1Keil MDK Version: v5Motor Control SDK Version: X-CUBE-MCSDK v6.4.2Optimization Level: -O2 for both compilersFOC Algorithm: [hall FOC]PWM Frequency: [16 kHz]Test Methodology:I have ported the exact same motor control source code to both environments. Performance is measured by:I noticed that the .hex file generated by Keil (100 KB) is smaller than the one generated by STM32CubeIDE (103 KB). Does this come from the compiler difference?Has anyone performed similar benchmarks between GCC and ARM Compiler for motor control and found strategies to close the gap?
hello everyone, i am a beginner in STM32cube. i was working on board Nucleo wb55rg. and following this tutorial STM32WB Getting Started Series: Part 12a, STM32CubeMX & STM32CubeIDE lab. Introduction, and it said on 2:33 that i need to activate "system core>IPCC and enable both interrupt". i am using STM32CubeIDE 1.5.0 and it does not show IPCC option on it . any help and guidance is appreciated, thank you
I am currently developing CSI using the STM32N6. I would like to study the project at the following link: https://github.com/STMicroelectronics/STM32N6-GettingStarted-ObjectDetection/blob/main/Middlewares/stm32-mw-camera/Release_Notes.mdHowever, the release notes state "Support for the STM32N6570-DK board only." Does this mean it is impossible to develop this project or related CSI projects on the NUCLEO-N657X0-Q?please help me
Hello,We are developing a STLDR to be used with STM32CubeProgrammer and are having what is seemingly random issues when programming hardware.We have already written the XSPI interface which works when executed in FLASH using test calls, but as soon as the interface is placed into the STLDR framework and used with STM32CubeProgrammer we are seeing failures of either the Init or SectorErase functions.Sometimes it will work after a full board reset, but not always.We have tried linking the loader at the undocumented 0x20003004 RAM address but this seemingly does not fix the issue.We have tried using our standard development IDE (not ST) which has been successful in the past, but also following the STM32Cube tutorial and repository here, replacing the QSPI calls with XSPI:https://wiki.st.com/stm32mcu/wiki/Getting_started_with_External_memory_Manager_and_External_memory_loaderhttps://github.com/STMicroelectronics/stm32-external-loaderThe hardware is a custom board using the H573II with
Hi all, I am trying to bring up a new custom board with an STM32H7R7 and external flash as well as external PSRAM. While I managed to get the external flash working after some try and error, the external PSRAM seems to be more stubborn. The board uses a IS66WVO8M8DALL-200BLI from ISSI (https://www.issi.com/WW/pdf/66-67WVO8M8DALL-BLL.pdf) The PSRAM is connected to XSPI1 in OctoSPI mode. The XSPI clock is configured to 133MHz. At the moment the MPU is completely disabled to not having to debug several things at once. The MX_XSPI1_Init() currently looks like this: static void MX_XSPI1_Init(void) { /* USER CODE BEGIN XSPI1_Init 0 */ /* USER CODE END XSPI1_Init 0 */ XSPIM_CfgTypeDef sXspiManagerCfg = {0}; /* USER CODE BEGIN XSPI1_Init 1 */ /* USER CODE END XSPI1_Init 1 */ /* XSPI1 parameter configuration*/ hxspi1.Instance = XSPI1; hxspi1.Init.FifoThresholdByte = 2; hxspi1.Init.MemoryMode = HAL_XSPI_SINGLE_MEM; hxspi1.Init.MemoryType = HAL_XSPI_MEMTYPE_MACRO
Description:In STM32U083 series, when multiple UART/LPUART instances share the same NVIC interrupt vector (e.g., `USART3_LPUART1_IRQn`), STM32CubeMX incorrectly generates `HAL_UART_IRQHandler` for all instances, even if one of them is configured in IrDA mode.This leads to a compilation error because:1. The handle for the IrDA instance is generated as IRDA_HandleTypeDef hirdax; (correct).2. However, in stm32u0xx_it.c, it attempts to call HAL_UART_IRQHandler(&huartx); using an undefined huartx handle.Environment:STM32CubeMX Version: 6.17.0OS: Ubuntu 24.04 LTSMCU: STM32U083RCTxFirmware Package: STM32Cube FW_U0 V1.3.0 Steps to Reproduce:1. Create a new project for STM32U083RCTx.2. Configure USART3 mode as IrDA.3. Configure LPUART1 mode as Asynchronous.4. In the NVIC Settings tab, enable the interrupt for "USART3 + LPUART1 global interrupt".5. Generate the code.6. Check `stm32u0xx_it.c`.Actual Result:The generated ISR code looks like this:/** * @brief This function handles US
I encountered a strange problem while using STM32CubeIDE. After clicking "Debug" and then "Exit," in all subsequent actions (unless I restart the software), when I click "Download" (not "Debug"), the IDE interface redirects to another file (the line `ldr sp, =_estack /* set stack pointer */` in `startup_stm32f407vgtx.s`). While it's not a major issue, it's certainly annoying, like having sand in your shoe. I'm seeking a solution.
Heyho,I'm currently designing a new modular system, with an STMH7 on the base-card. That one's basically up and running, including a self-made bootloader.Now I'm working on some new modules, these will be connected to the "base H7", probably via I2C, 2 extra UART lines might also be possible.The previous system used ATmega-MCUs on the modules, now we'll surely use some STM32 type. These modules will not do any DSP or computing, so a "small" STM32 will do (tending towards L07x because of the EEPROM).To save some dev time I'm thinking about using the internal bootloader for the module MCU, controlled by the base H7.I have checked the application notes (AN2606 and the ANs depending on the BL interface), also found the example source code from ST on Github.So far that looks okay and doable, nevertheless user experience always wins over "reading". :DSo...Anybody using the ST bootloaders in some real-life products ?How did that go and work out ? Documentation and source code examples good en
Hi Everyone,I need your help.I use STM32H573VIT but I can't FATFS in CUBEMX.I checked FILEX, SD interface. But CUBEIDE say fatfs.h : No such file or directory. Please help me out..Thanks,kadekade
HiIf I develop an application using the STM32WBA25 MCU with BLE, ThreadX, and USBX, is the RAM size sufficient?
I have started a CMake project with CubeMX. I can edit, build and debug using VS Code. CubeIDE has some debugging abilities missing in VSCode extension. So I would like to know if there is a way to do all the extensive editing in VSCode and the debugging in the IDE. That would be an ideal scenario because I could combine the best features of both environments.
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.