Ask questions on STM32CubeMX. Discuss code generation and configuration challenges, among other topics.
Most recent activity
It stops at 95% on two different machines, the Windows Task Manager runs the MX task at 95-100% up until 95% and then goes to 0 "forever". Windows 10 Pro 64bit, all service packs, Intel Core2 and i7, 12GB RAM. Processors used in IOC file STM32F767BIT6 and STM32H750XBH6. EDIT: 6.4.0 seem to behave differently, when i open the List tool it lists a small selection that finishes OK. I can then select another filter, in my case STM32H7, all packages and it then again almost slowes to a halt, giving me a Low Memory warning at about 4M of my 12M total. 6.5.0 defaults to load ALL MCUs and packages which seems to max out java(?) memory at about 3.5MB and then just gives up.
Hello experts,i am stuck with a question i have on debug side. I started a clean MCU project for the EVAL board above - nothing inside. After compiling with no error and trying to enter debub mode picture1 appears shortly (keeps open) and the debug cursor jumps to HAL_Init() as i expect. And program working fine. But what does this break address in the beginning mean? How can i solve this issue? Picture 2 discribes the short visible view in Disassembly Please someone can support since i really want to fix this issue.Thanks!Nils
Hi,I like to use the LQFP144 case of the STM32U575, but unfortunatly the case showed is wrong, see attaced pictures
First the GUI is all screwed up. When I look at USART2 It gives me the choices forGPIO output level,GPIO mode, GPIO Pull-up/Pull-downMaximum output speedUser Label,it is missing Fast Mode. I click down to USART1_TX and the list is different. It hasGPIO mode,GPIO Pull-up/Pull-downMaximum output speed,Fast ModeUser LabelThis one is missing GPIO Output Level. And it says it is "Modified" I told it to revert to the default and it is still "Modified" This is a known problem, but it does not help me that it is known. Here is the code generated. /** * @brief USART1 Initialization Function * @param None * @retval None */ static void MX_USART1_UART_Init(void) { /* USER CODE BEGIN USART1_Init 0 */ /* USER CODE END USART1_Init 0 */ /* USER CODE BEGIN USART1_Init 1 */ /* USER CODE END USART1_Init 1 */ huart1.Instance = USART1; huart1.Init.BaudRate = 115200; huart1.Init.WordLength = UART_WORDLENGTH_8B; huart1.Init.StopBits = UART_STOPBITS_1; huart1.Ini
I have spent hours trying to find bugs, and when I report them I am told they are "known problems". And the ST employee points to a number, that is internal to ST only. Companies publish Errata sheets all the time when the chip does not work as advertised with workarounds. Why not have one for your software tools?
Hi, I wonder if someone can explain how I can be more competent in using the CubeMX graphical tool for various peripheral configurations. Take for example, I am familiar with UART port hence the Cube MX GUI config tool for the UART is easier for me to understand and use. However for I2S for example which I am not familiar with ...how do I use the Cube MX GUI to do its configuration? Trial an error? Or is there any user guide that I can refer to?NOTE: Tools are made for making life easier not the other way round and ideally (thru the graphical tool) adapting into using new peripherals (of the MCU) take less effort Please help clarify - many thanks
Hi, I am using the STM32CubeIDE version 1.9.0 Code Generator feature (via the CubeMX graphical interface) and wanted to generate the 96 MHz sample clock for the I2S codec. Unfortunately, I found that the code generated under sub "void SystemClock_Config(void)" missing the I2S clock setting which supposed to look something like below://all these are not generated by the CubeMX code generator RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0}; ... PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_I2S; PeriphClkInitStruct.PLLI2S.PLLI2SN = 192; PeriphClkInitStruct.PLLI2S.PLLI2SR = 2; if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK) { Error_Handler(); }My question is:1) Am I missing anything while setting the CubeMX?2) What will be the way out other than copy the code above into my project main.c file?NOTE: I am comparing my code with respect to sample code given by other person then I know that the CubeMX Code Generator of my work lack of the above c
I created and developed a project for more than 4 years, and changes in the project have always forced us to migrate to newer versions of CubeMX and also newer software packages. The project is for an STM32F407VGT6 microcontroller. The last stable version was with CubeMX 6.2.1 and software package 1.26.2. Now when I try to migrate to CubeMX 6.5.0 software pack 1.27.0, after clicking generate, CubeMX deletes the main.c file from the project. Restoring the backup main.c file is not a good idea, since the changes are not made in the older file. The main.c file is generated when the project is made from scratch, but with migrated project, it is deleted.
안녕하세요, NUCLEO L073RZ를 사용하고 있습니다. 해당 보드로 I2C 통신�?� 진행하려고 합니다.다만, 사용하는 슬레�?�브 센서가 130HZ입니다. CUBE MX�?서는 최소 단위가 1kHZ 입니다. 해당 보드로는 130Hz�?� 주파수로는 통신�?� 불가능 할까요? 문�?�드립니다.
Dear all,I am using Cube MX to generate a template code for my new project. In Advanced Settings page under project manager tab, Init sub-routines order is not correct and I also cannot fix it. DMA is used in ADC1 and it should initialize before than ADC1_Init. However Cube MX puts ADC1_Init function before than DMA_Init. MX_ADC1_Init order also cannot be changed because order change buttons are not active. There is a problem with RCC section as well. I reported previously and ST said it is known issue and will be fixed. (https://community.st.com/s/question/0D53W00001Xuay2SAB/adc-clock-setting-in-st-cube-mx-for-stm32h742vgt). However I may find another problem. I genereted a template code using Cube MX and I realized some peripherals clock and PLLs are not set in PeriphCommonClock_Config subroutine. I am not sure whether it is a mistake but I believe it is. There is only settings for PLL3 and SPI123. I am using PLL2Q and some USARTs. Do you think it is a mistake and cube mx should gene
I just downloaded both STM32CubeMX (windows) and en.stm32cubef4_v1-27-0.zip.When I try to install the F4 package, it ask me for confirmation of license, checks license,churns mightly for a long while, and finally says "Problem during Unzip".I confirmed I can unzip the file AOK and downloaded a 2nd time just to be sure.I tried letting CubeMX download and install the file, with same result.What's going on???Thanks,Best Regards, Dave
I am trying to do UDP on Discovery STM32H735G-DK.1) MX Pinout configuration tool seems not compatible with the examples: if I open the example LwIP_UDP_Echo_Server in the configurator, LwIP remains disabled in the MX pin configurator.Q1: Is there any way to create/update the .IOC from the example so it can be used as a base to start working from using the MX tool? 2) If I generate with MX a basic configuration, even disabling all hardware peripherals, the tool keeps nagging “partly disable conflict with�? even with peripheral ADC I disabled.Q2: How should I understand conflicts between 2 hardware parts where 1 is disabled? For the moment it seems a contradiction to me. 3) If I try to correct beforementioned conflicts, I the tool is unwilling to let me change configuration: (Eth CHR, red, cannot be selected for PA0_C, so how to correct the alleged conflict? (right click on BGA pin PA
What is new in STM32CubeMX V6.6.0? • Added the support for the new STM32MP131, STM32MP133, and STM32MP135 microprocessors: STM32MP131(A-C-D-F)AEx, STM32MP131(A-C-D-F)AFx, STM32MP131(A-C-D-F)AGx, STM32MP133(A-C-D-F)AEx, STM32MP133(A-C-D-F)AFx, STM32MP133(A-C-D-F)AGx, STM32MP135(A-C-D-F)AEx, STM32MP135(A-C-D-F)AFx, and STM32MP135(A-C-D-F)AGx. • Added the support for one new board related to the STM32MP1 Series: STM32MP135F-DK. • Added the support for one new part number in the STM32L4 Series: STM32L476VGYxP.• Added a search feature to help setting the MCUs, MPUs, boards, and examples selector filters • Added the support for CAD resources in the MCU and MPU Selector and the ST Tools tab. Provides access to the EDA symbols, footprints, and 3D models for the user’s application. • Added the support for LPBAM firmware for the projects with Arm® TrustZone®(a) (TZEN=1) in the STM32U575/585 product line. • Added the support for two new boards related to the STM32WB Series: STEVAL-ASTRA1B and B-W
Hi!I just want to report that I have found two bugs. There is no errors with the HAL_DMA functions. I assume there is some errors with the predefined constants or enumerations.IntroductionI'm using STM32CubeIDE 1.7.0 with STM32F373VBTx and firmware V1.11.3I'm going to enable DMA for two timers. TIM17 and TIM16. I'm going also to enable DMA for Sigma Delta ADC.GoalThe goal is that with TIM17 and TIM16, they will work as Input Capture and save the counter value into arrays.For Sigma Delta ADC, I want to store the ADC values into arrays.Method - Input CaptureFirst I enable the input capture with this code.volatile static uint16_t input_capture0[2] = {0}; volatile static uint16_t input_capture1[2] = {0}; void STM32_PLC_Start_Input_Capture(TIM_HandleTypeDef* htim17, TIM_HandleTypeDef* htim16) { /* * Input capture for measuring frequency * For TIM17 and TIM16 * Timer clock: 48 Mhz * Prescaler: 4799 * Counter: 65535 (0xffff) * Update frequency: 0.1526 Hz (1/0.1526 = 6.5535
I am using the stm32h757i-Eval board and am trying to get a simple Ethernet LWIP application running. I am also using native Ubuntu 18.04. I have the H7 CubeMX repo v1.10.0. I am running the project in STM32CubeIDE. I have verified both the IDE and CubeMX are up to date.I followed the directions given here. The exception is that I'm using the RMII interface and that I'm using the crystal oscillator as my clock source. Otherwise, the rest of the directions were not difficult to follow. On my board, jumper JP5 is set to pins 2 and 3 to allow the 50Mhz signal to be generated by the pin PC8.My application builds and uploads to the evaluation board. I can also run it, but when I try to ping the address given in the linked setup, I always get "Host Unreachable" (ping 192.168.1.10) or when using "netcat –ul 55151" I get service "-ul unkown". 192.168.1.10 is what I set the IP address to under the LWIP settings and disabled DHCP as instructed. I also statically set the IP address of my laptop t
Are there any plans to repair the CubeMX system and to re-enable the configurations of STM32G4 firmware version 1.2.0? I tried version 1.3.0 and 1.4.0, and both don't allow to configure an OPAMP as follows: hopamp5.Instance = OPAMP5; hopamp5.Init.PowerMode = OPAMP_POWERMODE_NORMAL; hopamp5.Init.Mode = OPAMP_PGA_MODE; hopamp5.Init.NonInvertingInput = OPAMP_NONINVERTINGINPUT_IO2; hopamp5.Init.InternalOutput = ENABLE; hopamp5.Init.TimerControlledMuxmode = OPAMP_TIMERCONTROLLEDMUXMODE_DISABLE; hopamp5.Init.PgaConnect = OPAMP_PGA_CONNECT_INVERTINGINPUT_NO; hopamp5.Init.PgaGain = OPAMP_PGA_GAIN_32_OR_MINUS_31; hopamp5.Init.UserTrimming = OPAMP_TRIMMING_FACTORY;This was generated with CubeMX version 5.6.1 and STM32G4 firmware version 1.2.0. I am using this in an actual project and because of the bugs in 1.3.0 and 1.4.0 can't change to newer versions.
Processor STM32F746ZGTHello,When I use FreeRTOS (CMSIS_V2) in STM32CubeIDE 1.9.0, I get the prompt when generating code (as in the previous versions):The USE_NEWLIB_REENTRANT must be set in order to make sure that newlib is fully reentrant. The option will increase the RAM usage. Enable this option under FreeRTOS > Advanced Settings > USE_NEWLIB_REENTRANTIf I perform the requested setting, as I did in the previous versions, the code is generated without any hint. However, when compiling, I get the following error message:c:\st\stm32cubeide_1.9.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.0.202111181127\tools\arm-none-eabi\bin\ld.exe: c:/st/stm32cubeide_1.9.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.0.202111181127/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc.a(lib_a-reent.o):(.bss.errno+0x0): multiple definiti
(((Yes, I'm still using Atollic, STM32CubeMX, and HAL. Now is not the time in this project to change these things.)))I'm individually driving my AN0..AN5 analog inputs, and I've confirmed that the ADC results are showing up in ADC_DMA_BUFFER[1..6]. I would have expected them in ADC_DMA_BUFFER[0..5]. Meanwhile, I'm configured for 7 conversions, the 7th being AN14. It's not showing up in either ADC_DMA_BUFFER[6] (the normally expected location) or ADC_DMA_BUFFER[7] (an otherwise buffer overflow location that was hinted at by the behavior of the first 6 channels). Finally, I'm unable to test if AN14 is erroneously going into ADC_DMA_BUFFER[0] (which would be a looped-back index location).I've analyzed everything and I believe it's all lined up properly. Why might this be happening? Below is select cut/paste/images from my code and circuit. Thanks in advance for your help!-------------------------------------------------------------------------------
STM32CubeIDE v1.9.0 (and 1.8.0) is generating MX_DMA_Init() AFTER MX_DAC_Init() and this causes the functionality (DMA driving data to the DAC to play a wav file) to fail.
Hello Everyone,I was trying to communicate my board with a device over USART module. My MCU is STM32G051K8TX. But I hadn't been succeed until I notice a STM32CubeMX bug. Let me show you:I used alternate function of PA9, and PA10 for USART_TX and USART_RX from STM32CubeMX. When I generate code, it prepares HAL_UART_MspInit code without alternate function of the USART pins. I intert extra code inside the /* USER CODE BEGIN USART1_MspInit 1 */ and /* USER CODE END USART1_MspInit 1 */ tags. It reinitialize the PA9, PA10 as alternate fuction USART.You can see the code below:/** * @brief UART MSP Initialization * This function configures the hardware resources used in this example * @param huart: UART handle pointer * @retval None */ void HAL_UART_MspInit(UART_HandleTypeDef* huart) { GPIO_InitTypeDef GPIO_InitStruct = {0}; RCC_PeriphCLKInitTypeDef PeriphClkInit = {0}; if(huart->Instance==USART1) { /* USER CODE BEGIN USART1_MspInit 0 */ /* USER CODE END USART1_MspInit 0 */ /*
Hi,I am using ADC function on STM32H750IBK6 and everything worked perfectly.But after migration to CubeIDE v1.9.0 and SDK v1.10.0, ADC can't work any more.From "Clock Configuration" view, "ADC clock mux" is gray out for some reason.Related clock source selection has been removed after code generation.Is there any one can help me how to enable "ADC clock mux" correctly?Thanks,-Engin
Hello,I have recently encountered an issue after updating STM32CubeMX to the most recent version 6.5.0.The said version seem to have missing ADC "Clock Prescaler" in the configuration menu and ADC clock generation is locked disabled in the "Clock Configuration" menu even when ADC is set enabled.The issues are gone when downgraded to 6.4.0.Please have a look on this issue.Thank youBoard: Nucleo STM32H755ZI-QFirmware: STM32Cube FW_H7 V1.10.0Image 1: No "Clock Prescaler" menu in the ADC configuration menuImage2: ADC clock configuration is locked disabled even when ADC1 is set enabled.
The problem exists for ADC1, ADC2 and ADC3. It works with Firmware V1.16.0
Hello,I want to report that using the STM32CubeMX functionalities with an STM32G061 I found that configuring the USART1 using PA9 and PA10 there's an issue that prevents it to work properly.More precisely, in the generated function HAL_UART_MspInit, the alternate function is not configured for UART 1. I paste a snipped where the UART1 and UART2 are configured:void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle) { GPIO_InitTypeDef GPIO_InitStruct = {0}; if(uartHandle->Instance==USART1) { /* USER CODE BEGIN USART1_MspInit 0 */ /* USER CODE END USART1_MspInit 0 */ /* USART1 clock enable */ __HAL_RCC_USART1_CLK_ENABLE(); __HAL_RCC_GPIOA_CLK_ENABLE(); /**USART1 GPIO Configuration PA9 ------> USART1_TX PA10 ------> USART1_RX */ GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); /
I am using an STM32F429IIT6 with SDRAM connected to SDRAM 2, SDCKE1+SDNE1, Byte enabled "Disabled" do to the pin conflict with the LTDC settings for the display, a 480x272 RGB888 display connected to LTDC. I can read and write the SDRAM with code such as uint32_t *externalRAM = 0xd0200000; const uint32_t size = 120000; //write external RAM for(int i = 0; i < size; i++) { externalRAM[i] = i;}reading the SDRAM back in the same way confirms ability to read and write SDRAM. If I fill the frame buffer after setting up the rest of the system using the generated code from STM32CubeIDE the SDRAM data is written to the display showing the solid color I programmed into the SDRAM. I realize since all the values are the same in SDRAM I don't know yet if the the DMA transfer is 16 or 32 bits wide yet. But most of the system is working.I can see with the debugger that the SDRAM is being filled but appears the writes are 16 bits wide and not reflecting wh
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.