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
Hello ST team,I'm facing the issue with STM32N6 DCMI DMA configurations, I could see the data flowing down from the cmos & clocking at 50MHZ. I could spot the first 4 pixels data (2 words) on live watch window. the next word data is intermittent & getting into DMA error 0x41,The cube MX (6.17.0) unable to generate the DMA init functions appropriately for DCMI, however i’ve added the Config explicitly, Any suggestions on the below configurations? /*** @brief DCMI Initialization Function* @param None* @retval None*/static void MX_DCMI_Init(void){/* USER CODE BEGIN DCMI_Init 0 *//* USER CODE END DCMI_Init 0 *//* USER CODE BEGIN DCMI_Init 1 *//* USER CODE END DCMI_Init 1 */hdcmi.Instance = DCMI;hdcmi.Init.SynchroMode = DCMI_SYNCHRO_HARDWARE;hdcmi.Init.PCKPolarity = DCMI_PCKPOLARITY_FALLING;hdcmi.Init.VSPolarity = DCMI_VSPOLARITY_LOW;hdcmi.Init.HSPolarity = DCMI_HSPOLARITY_LOW;hdcmi.Init.CaptureRate = DCMI_CR_ALL_FRAME;hdcmi.Init.ExtendedDataMode = DCMI_EXTEND_DATA_12B;hdcmi.Init.J
STM32F030R8T - as on the Nucleo-F030R8PD2 should be present: Therefore GPIODEN should be present at RCC_AHBENR[20]: But it’s not present in the CubeIDE SFRs view:
Dear Team,I am currently working on an application based on the STM32H563ZITx microcontroller using the NUCLEO-H563ZI development board.The application is designed as a gateway that communicates with another controller through a UART interface. The same UART interface is also used to program the target controller with firmware updates.For the software implementation, I am using STM32CubeH5 v1.6.0 and have adopted the Nx_Iperf reference project for the NUCLEO-H563ZI board to develop a web-based user interface.The following functionalities have been successfully implemented and tested:Reading data from the target controller via UART Writing data to the target controller via UART Firmware download and programming through the same UART interfaceHowever, I am encountering an issue when transferring firmware (.bin) files. The system appears to accept only about 54 KB of data, after which the transmission stops. As a result, I am unable to transfer larger firmware images.My application requi
I’m using stm32f103 timer cc event to trigger adc injected conv. But I failed. I can trigger it with timer trgo. This means my adc configuration is correct. LL_TIM_InitTypeDef TIM_InitStruct = {0}; LL_TIM_OC_InitTypeDef TIM_OC_InitStruct = {0}; LL_TIM_BDTR_InitTypeDef TIM_BDTRInitStruct = {0}; LL_GPIO_InitTypeDef GPIO_InitStruct = {0}; LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_TIM1); TIM_InitStruct.Prescaler = 0; TIM_InitStruct.CounterMode = LL_TIM_COUNTERMODE_CENTER_UP_DOWN; TIM_InitStruct.Autoreload = 2249; TIM_InitStruct.ClockDivision = LL_TIM_CLOCKDIVISION_DIV1; TIM_InitStruct.RepetitionCounter = 0; LL_TIM_Init(TIM1, &TIM_InitStruct); LL_TIM_EnableARRPreload(TIM1); LL_TIM_SetClockSource(TIM1, LL_TIM_CLOCKSOURCE_INTERNAL); TIM_OC_InitStruct.OCMode = LL_TIM_OCMODE_PWM2; TIM_OC_InitStruct.OCState = LL_TIM_OCSTATE_ENABLE; TIM_OC_InitStruct.OCNState = LL_TIM_OCSTATE_ENABLE; TIM_OC_InitStruct.CompareValue = 0; TIM_OC_InitStruct.OCPolarity = LL_TIM_OCPOLARITY_HIGH;
Hello,Because there is no active handle in DMA list for DCMI DMA initialization (bug!?) I searching for the ways to enable and use DMA, I can't find examples for parallel mode except for CSI serial, if I switch to use DCMIPP in parallel mode then the cubeMX do not generate msp initialization code function HAL_DCMIPP_MspInit for DCMIPP interface (no pinout, RCC, IRQ...), and in DMA list DCMI_PSSI handle stays inactive,all my attempts to setup DCMI DMA do not work and DMA throws error 0x40, DCMI and camera working well, I getting hsync and vsync callbacks firing and counters show correct values, I tryed various settings but still cant start DMA transfer, there is my test and msp initialization code, please check: uint32 err0 = HAL_DCMI_Start_DMA(&hdcmi, DCMI_MODE_CONTINUOUS, (uint32)frame_buff_DCMI, 320 * 240 / 2); uint32 err1 = HAL_DCMI_GetError(&hdcmi); HAL_Delay(5000); uint32 err = HAL_DCMI_GetError(&hdcmi); printf("DCMI %u %u, %u %u %u, %u %u\n", hdcmi.St
Hi,I am trying to establish CAN communication between a NUCLEO-G474RE and a YMMOTOR MS72450 motor controller using the FDCAN1 peripheral.HARDWARE SETUP:- STM32 NUCLEO-G474RE (STM32G474RETx)- Transceiver: WCMCU-230 (SN65HVD230), 3.3V, connected to PA11 (FDCAN1_RX) and PA12 (FDCAN1_TX) via AF9- Motor controller: YMMOTOR MS72450 (CAN 2.0B, 500kbps, standard frame, Motorola byte order)- Termination: 120 ohm on motor controller side (factory default built-in). 120 ohm on transceiver side.- Common GND connected between STM32 and motor controller- Motor controller ACC pin (pin 10, 48-85V) is poweredCLOCK CONFIGURATION:- HSI 16MHz -> PLL -> 170MHz system clock- FDCAN kernel clock = PLLQ = 170MHz- NominalPrescaler=17, TimeSeg1=15, TimeSeg2=4, SJW=1- Calculated bitrate = 170MHz / (17 x 20TQ) = 500kbpsSYMPTOM:- Green LED blinks initially = TX frames being queued successfully (HAL_FDCAN_AddMessageToTxFifoQ returns HAL_OK)- Oscilloscope on CANH/CANL shows clear CAN signals from the
Hello everyone,I am currently working on an STM32-based project and have encountered an issue with UART communication. The UART works correctly after startup, and data is transmitted and received as expected. However, after running for several minutes, the communication suddenly stops and no further data is received.I have checked the wiring, baud rate configuration, and power supply stability. I also monitored the application for hard faults but could not identify the root cause. The issue occurs consistently after prolonged operation.Development Environment:MCU: STM32 Series IDE: STM32CubeIDE Communication: UARTHas anyone experienced a similar issue or can suggest possible causes and troubleshooting steps? Any guidance would be greatly appreciated.Thank you.
Hello,I am ready to use STM32C531 in project. Right now, I am using Keil MDK V5.29 and it does not support this micro. Can anybody help to tell me which Keil version support this micro? If I do not use Keil, does any other IDE/Compiler support this micro develop? Thanks,
Hi all! Thank you for taking time to assist me. I am attempting to make a composite USB Device on the NUCLEO-C562RE. I found the Middleware USBX examples and the core drivers exist in my toolchain at: STM32CubeC5/middleware/usbx However, I cannot seem to find the middleware configuration for USBX in STM32CubeMX2. My pack manager in the STM32CubeMX2 is set to this default value: "cube.packManager.cmsisPackRepositories": ["https://developer.st.com/st-pack-server/api/v1/pidx/STMicroelectronics.pidx"] Please let me know if I have missed anything or if you need further information from me to figure out the root issue. The examples, linked above, clearly auto generated the USBX files using the MX2 software, but I could not find the documentation that allowed me to generate those files. I would greatly appreciate it if someone could assist me with this. EDIT: I saw this forum that says support isn't out until Q3. Does that mean I have to write the generated cod
I’m seeing that there’s the same file OSWrappers.cpp in both target\generated and touchgfx\osThe one in touchgfx\os is slightly different as it contains static portBASE_TYPE IdleTaskHook(void* p){ if ((int)p) // Idle task sched out { touchgfx::HAL::getInstance()->setMCUActive(true); } else // Idle task sched in { touchgfx::HAL::getInstance()->setMCUActive(false); } return pdTRUE;}// FreeRTOS specific handlersextern "C"{ void vApplicationStackOverflowHook(xTaskHandle xTask, signed portCHAR* pcTaskName) { while (1); } void vApplicationMallocFailedHook(xTaskHandle xTask, signed portCHAR* pcTaskName) { while (1); } void vApplicationIdleHook(void) { // Set task tag in order to have the "IdleTaskHook" function called when the idle task is // switched in/out. Used solely for measuring MCU load, and can be removed if MCU load
Hello!I am working on a project using the STM32U375CGUx MCU, and I am trying to implement a Stereo Audio Acquisition system using two omnidirectional digital PDM MEMS microphones.Hardware Setup: Microphone L: L/R pin tied to GND (Rising Edge data output). Microphone R: L/R pin tied to VDD (Falling Edge data output). Both microphones share the same lines connected to the MCU: PB4 (ADF1_SDI0) for the clock and PB3 (ADF1_CCK0) for the data stream. The Issue:When configuring the peripheral through STM32CubeMX, I am unable to set up a true Stereo configuration. I can only make it work in Mono.Looking at the generated HAL initialization code, I am forced to choose either MDF_BITSTREAM0_FALLING or MDF_BITSTREAM0_RISING for the FilterBistream parameter. There is no option/macro to sample both edges (interleaved) simultaneously on the same filter instance:AdfHandle0.Instance = ADF1_Filter0;AdfHandle0.Init.CommonParam.ProcClockDivider = 6;AdfHandle0.Init.CommonParam.OutputClock.Activation =
Hello,I’m working with custom board STM32F767BITX, trying to interface Standalone USB Host MSC, with no Free RTOS.Tried different reference, below is one reference which I followed As soon as connected USB, it shows connected but after that it loop between this two calls alternatively, USBH_LL_PortDisabled() and USBH_LL_PortEnabled() which disconnect USB and connect again and continue to do that.So I dont understand the root cause of this, what trigger this to behave like this?Please guide me to fix this issue. void SystemClock_Config(void){ RCC_OscInitTypeDef RCC_OscInitStruct = {0}; RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; /** Configure the main internal regulator output voltage */ __HAL_RCC_PWR_CLK_ENABLE(); __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE3); /** Initializes the RCC Oscillators according to the specified parameters * in the RCC_OscInitTypeDef structure. */ RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI|RCC_OSCILLATORTYPE_HSE; RCC
Hi ST!I’ve been having some difficulty trying to integrate my UART project inside the architecture outlined in your OEMiRoT_Appli_TrustZone example for the NUCLEO-U385RG-Q. Note this example is incompatible with CubeMX and therefore I’m somewhat on my own when it comes to setting up additional peripherals (like USART3).I’m currently able to send in a string to uart3 using HAL_UART_Transmit, however am not able to trigger an interrupt when attempting to input to uart3 - code below: char *msg = "USART3 TEST 3\r\n"; HAL_UART_Transmit(HUART, (uint8_t*)msg, strlen(msg), HAL_MAX_DELAY); HAL_UART_Receive_IT(HUART, &uart_rx_byte, 1);I’ve tried using VSCodes compare functionality to mirror a CubeMX generated TrustZone example with uart enabled, so far adjusting sections of stm32u3xx_it.h/c, stm32u3xx_hal_conf.h/c and partition_stm32u385xx.h, with some nudging from this forum question https://community.st.com/stm32-mcus-embedded-software-32/stm32h563-trustzone-usart3-interrupts-not-working
Hi everyone,I'm working on a project using **STM32H753ZIT6** (Cortex-M7 @ 480MHz) to drive an **Alientek ATK-MD0430** 4.3" TFTLCD with **NT35510** controller via **FMC 16-bit 8080 parallel bus**.**Symptom: Screen is completely dead — no backlight, no image, NT35510 ID read returns 0x0000 or 0xFFFF.**I've been debugging this for two weeks and would appreciate any guidance.---### Hardware Configuration| LCD Signal | STM32 Pin | FMC Function ||-----------|-----------|--------------|| CS | PD7 | FMC_NE1 (Bank1) || RS | PD13 | FMC_A18 || WR | PD5 | FMC_NWE || RD | PD4 | FMC_NOE || RST | PG9 | GPIO Output || BL | PA8 | TIM1_CH1 PWM || D0-D15 | Standard FMC data bus pins | FMC_D0~D15 |### System ClockHSE=25MHz → PLL1 /5×192/2 = 480MHz SYSCLKPLL2 /5×120/3 = 200MHz → FMC (HCLK=240MHz)VOS Scale 0### What I've Tried (all failed)1. Copied NT35510 init sequence from Alientek's official MiniSTM32H750 example2. Fixed CMD/DATA addresses: CMD=0x6007FFFE, DATA=0x60080000 (RS on A18)3. MPU configured for
Hello, I'm using an STM32U5G7VJTx MCU with a 480x320 display, connected to the FMC in 16-bit mode, and everything works fine using the GPU2D. I'm not using an existing GUI framework.The pixel format used by the display is RGB565 (16bpp), so for gradients, I want to use dithering to soften the banding. I found this definition in the 'nema_graphics.h' file:#define NEMA_DITHER 0x80U /**< Nema Dithering */However, it seems undocumented. How do I make use of it?Kind regerds, Jack.
Title edited to indicate that this is specific to J-Link.Hi,After updating to STM32CubeIDE 2.1.0 I get the following message after starting a debug session. Live expressions do not work.From the console:SEGGER J-Link GDB Server V9.14a Command Line Version JLinkARM.dll V9.14a (DLL compiled Jan 28 2026 17:11:52) Command line: -port 2331 -s -device STM32F769NI -endian little -speed 4000 -if swd -swoport 2332 -vd -rtos C:\ST\STM32CubeIDE_1.11.2\STM32CubeIDE\plugins\com.st.stm32cube.ide.mcu.externaltools.jlink.win32_2.5.200.202601091506\tools\bin\GDBServer\RTOSPlugin_FreeRTOS.dll -----GDB Server start settings----- GDBInit file: none GDB Server Listening port: 2331 SWO raw output listening port: 2332 Terminal I/O port: 2333 Accept remote connection: localhost only Generate logfile: off Verify download: on Init regs on start: off Silent mode: off Single run mode: on Target connection timeout: 0 ms ------J-Link related settings------ J-Link Host interface: USB J-Link script: none J-Lin
I am using an STM32F401RET with the Simulink STM32 support package.My problem is that I am measuring a pure sine wave from a voltage sensor. I verified the sensor output using an oscilloscope, and the waveform is clean. However, the ADC readings on the STM32 show a very low-quality signal that appears as a stepped waveform rather than a smooth sine wave.I have already tried increasing the sampling rate, running the ADC at its maximum clock speed, and using a timer as an external trigger source for the ADC, but none of these solutions improved the result.I would appreciate any suggestions on what could be causing this issue.
Hi, my team works with STM32CubeIDE and shares projects via github. We've been running into somewhat frequent errors where projects settings don't get shared properly when pulling the files down from github. On the flipside, there are a bunch of automatically generated files that change frequently with builds, code generation, etc, that bloat the git log unnecessarily if they are shared.Is there a standard gitignore that we should be using for STM32CubeIDE projects. Are there any rules of thumb for how to set up stuff like project folder structure, project variables, etc, such that they get properly shared?
Hi,I have a problem with my custom container. I made a custom keyboard container in my project (4.26.1 compile is ok). I would like use this in another project.I exported this container which works.In the another project i import the widget, but compiler get unexpected error.What is the problem with widget?Thank you!These are the designer logs:2026-06-19 09:15:01,186 [1] ERROR TouchGFXDesigner.App: Object reference not set to an instance of an object.System.NullReferenceException: Object reference not set to an instance of an object. at TouchGFXDomainModel.LoadSave.Serial.ToSerial.Convert(TriggerCustom t) at TouchGFXDomainModel.LoadSave.Serial.ToSerial.Convert(Interaction i) at System.Linq.Enumerable.IListSelectIterator`2.ToList() at TouchGFXDomainModel.LoadSave.Serial.ToSerial.Convert(CustomContainerDefinition c) at System.Linq.Enumerable.IListSelectIterator`2.ToList() at TouchGFXDomainModel.LoadSave.Serial.ToSerial.Convert(Application a) at TouchGFXDomainModel.LoadSave.
Hello ST Team,I am evaluating the STM32MP215F-DK with the recommended M.2 Wi-Fi/BT module (Embedded Artists EAR00409 / Murata 2EL). I have encountered two critical issues that prevent the Wi-Fi features from working out-of-the-box with the standard Starter Package.I believe these are bugs in the current hardware/software release.1. Critical Software Configuration Issue: SDMMC2 Access Blocked by RIFThe STM32MP215F-DK Data Brief explicitly states that the board features an "M.2 E-Key connector to support Wi-Fi® and Bluetooth® SDIO modules". However, with the default Starter Package (OpenSTLinux 6.6), the Linux kernel fails to probe the Wi-Fi module on SDMMC2.Symptoms:• Linux kernel log shows no response from mmc1 (SDMMC2).• Attempting to access the SDMMC2 registers manually via devmem 0x48230000 results in a Bus Error.• OP-TEE console reports a firewall exception: SERC exception ID: 77 (SDMMC2 Illegal Access).Root Cause Analysis: It appears that the Trusted Firmware-A (TF-A) device tree
Hello STM32 Community,I am developing a custom board based on the STM32F302R8T6 MCU. My schematic is largely derived from the MB1136 evaluation board reference design, and I would appreciate a review from experienced STM32 users before PCB fabrication.I would like feedback on the following areas:Power Supply Design VDD, VDDA, VBAT, VSS, and VSSA connections Decoupling capacitor placement and values Analog supply filtering Clock Circuit Main crystal oscillator connections 32.768 kHz RTC crystal circuit Load capacitor values and recommendations Boot and Reset Circuit BOOT0 configuration NRST pull-up and reset button circuit Any missing protection or filtering components Programming and Debugging SWD interface (SWDIO, SWCLK, NRST, SWO) Compatibility with ST-LINK Ability to program and debug reliably GPIO Connections Review of user button, status LEDs, buzzer, and external interfaces Any pins that should not be used for GPIO due to boot/debug functions General Design Review A
Are there plans to update CubeMX to support MacOS 27 and later? I have just installed 6.17.0 under MacOS 26 and I get a warning to say the installer will not work with later versions:This is because support for the Intel translation layer will be removed (M series Macs are now into their 5th year).Note the CubeMX app itself does not get this - just the installer.
Hello. I’m facing strange issue in my design with STM32U575RGT6, revision “U”.Finally I discovered what is going on, but I don’t have ideas how to fix this.I’m using electronic switch to power ON and OFF the device:VBATT is 4.2V Li-Ion battery.One half of BAV70 diode is controlled by manual SWITCH (to power ON), second one by IO pin from uC (to maintain ON, and to OFF).Problem is that my program often hangs up in this function (I added LED blinks inside): if (HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE1) != HAL_OK) { while (1) { HAL_GPIO_WritePin(POWER_ON_GPIO_Port, POWER_ON_Pin, GPIO_PIN_SET); HAL_Delay(100); HAL_GPIO_WritePin(POWER_ON_GPIO_Port, POWER_ON_Pin, GPIO_PIN_RESET); HAL_Delay(1000); } Error_Handler(); }Voltage on VCAP pins is 0.9 V, and often freezes in this level. Rarely steps up to 1.2V and program normally continues.I finally discovered that is caused by slow rising of VDD voltage. This is from my electronic switch:I can bypass the
Hello.I have a project created earlier in CubeIDE 1.9.x, which I imported into the new CubeIDE 2.1.1. However, due to some issues with the project/code, I want to revert to the basics and create a fresh new project.There are some issues:In CubeMX 6.17.0, when configuring GPIO pins, nothing appears in the GPIO window:Additionally, there are problems with ICACHE:I cannot generate code without warnings.These problems occur when creating the project.Closing the IOC file and CubeMX, then reopening the IOC file a second time, resolves the issue. I can live with this workaround, but I’m reporting it.The second problem is in CubeIDE: when importing a project, the “C/C++ Index” tab is missing:Also some tabs missing in Properties:What I’m doing wrong?I followed the instructions exactly as in the video from this topic: PS. Sorry, there are mistake in title: CubeMX 6.17.0, not 1.67.0.
I read a couple of topics that discussed having to use the external xtal to drive the 48 Mhz as opposed to HSI48. When I run cube mx, the clock mux is greyed out and I cannot change the clock source.Am I chasing the right issue here and if so, how do I ungrey the clock mux?My IOC file is attached.
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.