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
Dear ST,The STM32H5 overview page seems to display the wrong number(1) of CANFD controllers for STM32H5E4 in the line comparison table. The datasheet says it's 3, like for all the others in the STM32H5E/F lines.Also, I couldn't find anything in the errata sheet about non usable CAN instances.
Hello Forum,I want to use a Nucleo 64 STM32F401 Board to test I2C connection with an unknown master (reverse engineering).The Bus consits of 1 Master (unknown Controller) an 1 Slave (My STM32F40). The Master sends out a Read Request at Addr. 5 and the Slave should respond with 3 Bytes. I've connected the I2C Bus to PB6/PB7 of the Nucleo Board. On Softwareside I Initialized with bare metal Code, see attachment.I my setup a I2C Master sends out a Adress byte with read request to address 5, but my Controller doesn't do a thing at all. I would expect at least an ACK Bit, but nothing can be monitored.From the Signal capture the bus looks fine for me, but in which mode do I need to configure the stm32 slave? Is this standard mode or fast mode. Is the clock speed of any concern in this case (slave)? How to config the CCR and TRISE register in this case.The Port seems to be configured correct, the IDR of GPIOB detects a "1" on PB6/PB7.In my example I've also enabled interrupts, but
STM32G491Code generator generate wrong order of calls for SPI initialization for LL driver: LL_DMAMUX_SetSyncRequestNb calls after LL_DMAMUX_EnableSync
Hello,We programmed our STM32L011 microcontroller with firmware that enters STOP mode and waits for an interrupt.However, we accidentally disabled the interrupt on the PA4 line. As a result, the device now immediately enters STOP mode, and we are unable to reprogram it.Could you please advise how we can recover the device in this situation?Thank you in advance.
Hello!We are using an STM32L0 microcontroller as a power switch.The device works correctly when the firmware is started from STM32CubeIDE using the Run command.However, if we switch the power supply off and then back on, the STM32L0 does not boot.We suspect there may be an issue related to the reset circuit.Please see the attached schematic. The relevant device is U6.Could you please advise?Thank you in advance.
Hello world!I want to move a motor with serial commands. I use the stm32g051 PWM and a DC motor. And for the sake of lower consumption of energy and cpu I use a dma in circular mode. And of course I want to change the pwm from time to time. But somehow, there is always a delay of more than 10 seconds between the calling of the function and the change in the motor behaviour. mid_error_t tim_forward_buffers(void) { for (uint16_t i=0; i<PWM_BUF_LEN; i++){ pwm_ch1[i] = (uint32_t)(param.speed * (htim2.Init.Period-2))/ MAX_SPEED; //pwm_ch1[i] = 0; // htim2.Init.Period; pwm_ch2[i] = 0; } __HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_1, pwm_ch1[0]); __HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_2, pwm_ch2[0]); return MID_ERROR_OK; }You may guess that the PWM_BUF_LEN is too big... There is just one element in pwm_ch1 and pwm_ch2. What may cause this problem? I use the __HAL_TIM_SET_COMPARE to change the pwm faster and the pwm_ch1 pwm_ch2 just contain one elem
I'm working on adding a custom STM32MP257 board based on the openstlinux distribution package, and I'm currently using the STM32MP257F-EV1 board. I'm having problems with booting on eMMC with a stm32cubemx-generated device tree. What I've done:* Created a STM32MP257F-EV1 project in CubeMX. I've only changed the project name, no pinning etc (based on instructions from https://wiki.st.com/stm32mpu/wiki/How_to_create_STM32MPU_projects_with_STM32CubeMX#Create_an_STM32MP2_series_project)* Copied the generated output into layers/meta-st/meta-st-stm32mp-addons/mx* Copied stm32mp25-mx.conf to a custom one and edited (perhttps://wiki.st.com/stm32mpu/wiki/How_to_create_your_own_machine)BOOTSCHEME_LABELS += "optee" [...] BOOTDEVICE_LABELS += "sdcard" BOOTDEVICE_LABELS += "emmc" * Built the image usingDISTRO=openstlinux-weston MACHINE=stm32mp257f-simon source layers/meta-st/scripts/envsetup.sh bitbake st-image-westonwhich finishes successfully (CUBEMX_DTB, CUBEMX_PROJECT etc being set in
Hello, i found a bug in the code generated by the Motor Control Workbench usign the 6-step algorithm. Even with Open Loop mode enabled, the code is still using the PID for the initial duty cycle computation (state CHARGE_BOOT_CAP in the TSK_MediumFrequencyTaskM1()). If the PID isn't set up right and starts with a low duty cycle, the motor won't turn. This means the Hall sensors don't trigger, the duty cycle never updating, and the motor just sits there even if you set a high duty cycle value. The Open Loop mode shall bypass the PID controller, otherwise it is useless. I fixed it by changing row 174 of mc_tasks_sixstep.c as follows: from: MCI_ExecBufferedCommands(&Mci[M1]); /* Exec the speed ramp after changing of the speed sensor */ to: if (SDC_GetOpenLoopFlag(pOLS[M1])) { SDC_SetControlMode(pSDC[M1], MCM_DUTY_MODE); } else { MCI_ExecBufferedCommands(&Mci[M1]); /* Exec the speed ramp after changing of the speed sensor */ } Leo Edited to apply source code formatti
Hi i am getting this error while opening motor pilot for gui in motor control,pls go throgh below attached file.
The project requirement is to use optical ethernet with STM32MP257F. I want to try this interfacing first at STM32MP257F EV1 with some copper to optical Ethernet converter module, but in STM32MP257F EV1, Ethernet pins are not available for interfacing. Kindly suggest some solution for using optical ethernet with STM32MP257F. Kindly send the solution as early as possible. Thank you With Best Regards, Dr. Amruta S. Dixit
I recently built a motion-control setup using an STM32 MCU to drive a NEMA 23 stepper via a DM542 driver. STM32 timers reliably generate step pulses while DMA reduces CPU load, enabling smooth microstepping and precise speed control. Key tips: match driver current to motor specs, use a 24–48V stiff supply, keep motor and logic wiring separate, and provide cooling for the driver. Implement trapezoidal acceleration to avoid missed steps and add homing/limit switches for safety. For multi-axis systems, synchronize timers or use an RTOS for higher-level planning. Happy to share sample timer code or a parts list on request.
Hi,I am testing PD11 on an STM32H563ZI with a NUCLEO-H563ZI board.The pin is configured as plain GPIO input using STM32 HAL:GPIO_InitStruct.Pin = GPIO_PIN_11; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_PULLUP; // or GPIO_PULLDOWN / GPIO_NOPULL HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);I rebuild and reflash the firmware for each case, then read the pin with HAL_GPIO_ReadPin(GPIOD, GPIO_PIN_11).What I observe is:GPIO_MODE_INPUT + GPIO_PULLUP -> LOWGPIO_MODE_INPUT + GPIO_PULLDOWN -> HIGHGPIO_MODE_INPUT + GPIO_NOPULL -> LOWI also checked the pin with a multimeter, and the measured pin level matches what the MCU reads.I have rebuilt and reflashed multiple times and I keep getting the same pattern.My expectation was that a floating input with internal pull-up should read HIGH, and with internal pull-down should read LOW.Is there anything special about PD11 on NUCLEO-H563ZI / STM
Using STM32CQubeCLT 1.20's libnano:I am trying to print an uint64_t using inttypes.h via an vsnprintf(line, sizeof(line), fmt, ap) wrapper and the sending the line via UART to a Terminal.However, using print_wrapped("%" PRIu64"\n", (uint64_t)1) gives only an output of "lu\n".I know that for floating point support I need to add -u _printf_float to the linker options. Is there something similar for 64bit integers? Or do I have to compile my own version of libnano?
Hi ST Community,I create LBPAM application which continuously convert ADC4 data channel 22 (PC4) of STM32U575 VGTX.I add HAL_DBGMCU_EnableDBGStopMode(); so I can debug in stop mode. I run LPTIM1 and ADC4 before going to STOP mode. I also move VoltageData buffer to SRAM4 uint16_t VoltageData[32] __attribute__((section(".sram4")));LPBAM configuration contains one queue in Circular mode and only one node for ADC4 conversion.After enter stop mode 2, no adc4 trigger, and VoltageData always is 0.I attach my configuration so you guy can check it.Thank you.
Background: I am designing a high-speed imaging system for an industrial press. I am using an STM32 to synchronize a camera (TIM3) and two flashes (TIM4) based on an external hardware trigger.The Setup:Both timers are in One-Pulse Mode (OPM) and Combined Reset + Trigger Mode (SMS = 1000).Both are triggered by the exact same physical edge using HAL_TIMEx_RemapConfig(&htim4, TIM_TIM4_ETR_TIM3_ETR)The digital filter is set to 16 µs for both (ClockDivision = DIV4, TriggerFilter = 0xf).The Goal: When a valid trigger arrives, both timers start automatically. TIM3 fires its pulse almost immediately. TIM4 counts down a configurable delay (via CCR) before firing the flashes.To prevent mechanical double-triggers from the sensor, I need a firmware "blind window." Once the initial valid trigger is received, I want to completely ignore the ETRF pin for a few milliseconds.The Catch: I want to disable the ETR input from inside TIM3's HAL_TIM_PWM_PulseFinishedCallback (which fires right after the
Hello!I was working on a project of mine and put it on pause for a few weeks and now when I tried to connect the stlink to my PC its no longer detected. Its not showing up in the device manager and the stlink has dim red and green lights lit.Does this mean that it's somehow bricked? What could have caused it?I tried it on two of my computers and with 3 different cables. I am assuming it's a different problem from this one https://community.st.com/t5/stm32-mcus/how-to-solve-connection-errors-when-connecting-and-programming/tac-p/786977 .Thanks in advance!
Hello, Long time lurker here. First of all, thank you for the extensions, really appreciated the possibility to work directly in vscode.I have a couple of situation, however, that are really annoying and that I would like to solve. While developing in vscode with the extension enabled. It is sufficient to update the CMake presets in order to have the tools installed by the ST extension to make the git repository dirty.If before committing the files to the repo a pre-commit that formats the files in a proper way then it is amplificated.The files: c_cpp_properties.json in the .vscode folder is always updated with the compileCommands updated if dynamic folders for Debug and Release are used .clangd configuration file is updated in the CompilationDatabase field.In my opinion there are two different types of settings: settings that needs to be persinstent, and maybe reusable on different computers by different userssettings related only to the current runThere
Having issues compiling the source code found in the audio kit for the designer application.C:\x-cube-audio-kit-v1-4-1\package\Projects\STM32H573I-DK\Applications\Livetune\STM32CubeIDE\DesignerAfter importing the project into STM32 Cube IDE when I attempt to build the source without changing anything I get the following error.... make -j22 all arm-none-eabi-gcc -o "firmware.elf" @"objects.list" ../../../../../../../Middlewares/ST/STM32_Audio/Addons/PDM/Lib/libPDMFilter_CM33_GCC_wc32.a ../../../../../../../Middlewares/ST/Audio-Kit/lib/libAudioChainAlgos_CM33_GCC.a ../../../../../../../Middlewares/ST/Audio-Kit/lib/libAudioChain_CM33_GCC.a ../../../../../../../Drivers/CMSIS/DSP/Lib/libCMSISDSP_CM33_GCC.a -mcpu=cortex-m33 -T"../Project.ld" --specs=nosys.specs -Wl,-Map="firmware.map" -Wl,--gc-sections -static -L../../../../../../Drivers/CMSIS/DSP/Lib/GCC -L../../../../../../Middlewares/ST/STM32_Audio/Addons/PDM/Lib -Xlinker -no-wchar-size-warning -mfpu=fpv5-sp-d16 -mfloat-abi=hard -mt
Hi all,I'm planning to get STM32H573I-DK to evaluate X-CUBE-AUDIO-KIT Livetune because there are project examples for specific boards and this is one of them. I'll be using an STM32U5A9 MCU eventually and both have an M33 core. This should make it easier to port from one to the other. I see that there are two versions of STM32H573I-DK: MB1677-H573I-D01 Board schematic has a WM8904 audio codec and MB1677-H573I-C02 Board schematic has a CS42L51 audio codec. This last one is marked as "Discontinued Product" by the manufacturer.Do the examples for STM32H573I-DK work for either version of the board without any modification or does it require a specific version/codec?Thanks.
Hi, I consistently hit HardFault when using PICOLIBC. I am using a STM32H735G-DK board.Setup:1. Start from a black CubeMX project, selecting the board and default pins. The FreeRTOS must be enabled, and the TouchGFX (with the MPU configured). We will target CMake and SR Arm Clang. Generate code.2. Open TouchGFX and load the project with the file ApplicationTemplate.touchgfx.part. No need to add anything, just generate code.3. Open the entire project with VSCode. The project by default uses the PICOLIBC in the file starm-clang.cmake. The project as is compiles successfully. flash onto the board and click Continue. The code will instantly go in HardFault_Handler().Here is a printscreen: Can anyone try to reproduce this, just to make sure it is not something only on my side? Thank you!If I change for STARM_NEWLIB in starm-clang.cmake instead of STARM_PICOLIBC, everything works as expected, no hardfault, and the screen initializes successfully.I have added a demo project.
Disclaimer:Probably not quite the right place for this bug report. However, since the issue appeared with the update to CubeIDE VSCode v3.8.0 and STM32CubeMX v6.17.0, and the project in the attached ZIP was created with these versions to reproduce the behavior, I am placing it here.IntroductionLink to Project on GitHub: init_array_issue (or use the attached ZIP file)The code in file init_array_issue.cpp demonstrates a misbehavior where, under certain conditions, the initialization of objects is silently skipped without any warning or error message when picolibc is used together with the linker description file STM32H753XX_FLASH.ld generated by STM32CubeMX and the default optimization -Og.picolibc / STARM_PICOLIBCThe use of picolibc has been the default since the STM32CubeMX update to 6.17.0, configured via the option STARM_PICOLIBC in the file .\cmake\starm-clang.cmake.Previously, STARM_HYBRID was set here by default.# STARM_TOOLCHAIN_CONFIG
I'm looking at Rev 9 of the STM32L412xxx Datasheet, as linked on Digikey, and I'm having a hard time understanding the current consumption figures specified for the Low-power Run & Low-power Sleep modes on the MCU. Per the table on pg.24 (shown below), the current draw is 83uA/MHz in LPRun mode, which is higher even than the normal Run mode up to 26MHz (range2), which doesn't make sense to me. Further, the current draw in LPSleep mode is also 83uA/MHz, which suggests there's no power savings putting the MCU to sleep in Low-power mode? Can somebody tell me what I'm missing here, or is this a typo and one or both of those figures are wrong?
Could I erase rtc backup registers with STM32CubeProgrammer ?
Is there a way to change the Horizontal front and backporch? This is a addon to this question* https://community.st.com/t5/imaging-sensors/vd56g3-camera-change-the-frame-start-and-frame-end/m-p/888134#M6406@Jean_Poire
hello,I encountered a problem while developing for stm32u585.I change the iwdg reload value by HAL_IWDG_Init(), and then HAL_PWR_EnterSTANDBYMode(), but the new reload value does not take effect: hiwdg.Instance = IWDG; hiwdg.Init.Prescaler = IWDG_PRESCALER_64; hiwdg.Init.Window = 4095; hiwdg.Init.Reload = 3600; hiwdg.Init.EWI = 0; HAL_IWDG_Init(&hiwdg); HAL_IWDG_Refresh(&hiwdg); HAL_Delay(300); //more than one downcount HAL_PWR_EnterSTANDBYMode();if delay before refresh, it seems work hiwdg.Instance = IWDG; hiwdg.Init.Prescaler = IWDG_PRESCALER_64; hiwdg.Init.Window = 4095; hiwdg.Init.Reload = 3600; hiwdg.Init.EWI = 0; HAL_IWDG_Init(&hiwdg); HAL_Delay(300); //more than one downcount HAL_IWDG_Refresh(&hiwdg); HAL_PWR_EnterSTANDBYMode();Is this the correct process ? If I want to ensure the modification is successful, what should I pay attention to
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.