Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Dear ST Support,I have two questions regarding the STM32H7S78-DK board.1. Is it possible to retrieve the original factory application that comes preloaded on the STM32H7S78-DK? I’ve already flashed my own project, but as expected, this process erased the factory-provided firmware.2. I tried programming the board using a BSP example selected via STM32CubeIDE’s Example Selector. However, the IDE fails to upload the example to the board. A pop-up briefly appears and then disappears, with no further feedback. Even when the board is disconnected, STM32CubeIDE doesn’t display any error or warning that the board is not connected.Interestingly, when I run my own project, everything works as expected. The board is correctly flashed, and when it’s disconnected, I do receive the expected “ST-LINK not detected” message.Best regards
Hi team, I provisioned both OEM1 and OEM2 keys. I locked the device using OEM2 key and then put the device in RDP level 2 with the below commands:STM32_Programmer_CLI.exe -c port=SWD mode=hotplug -lockRDP2 0xFEDCBA98 0x76543210Response: "Lock RDP2 password successfully done"Enable RDP2: STM32_Programmer_CLI.exe -c port=SWD mode=hotplug -ob RDP=0xCCIf you see here I used only <word1> and <word2> for password because I followed the below video for STM32U5:URL: https://www.youtube.com/watch?v=B3l6iuA7U8Q&t=752sBut STM32U3 series uses 128 bits of password rather than 64 bits used by STM32U5 series.Could anyone know/share default value that will be passed if we have missed <word3> and <word4>.
Hello,I'm currently using eval boards B-G473E-ZEST1S + STEVAL-LVLP01 to evaluate a new MCU for brushless motor control. I'm using MotorControl 6.4.1 to generate the firmware project and MotorPilot 6.4.1 to profile and pilot our motor.I've used the interface in MotorControl to create/configure the motor I want to use with my tests. Everything works fine until I push the start button in MotorPilot : I immediately get a FAULT_OVER / Over Current.My brushless motor parameters are the following :Vnominal = +24VMax Speed = 17 000 rpmPole pairs = 2Max nominal current = 9.21 ARs = 0.1 OhmSpeed constant = 710 rpm/VI'm pretty sure there is something I'm not doing right when configuring the motor or when starting the motor control process. Do you have any ideas about what I'm missing ?
Hello I'm using TouchGFX on the STM32H757I-EVAL board and facing D-Cache related issues. The framebuffers are in SDRAM, other data is placed in AXI SRAM. D-Cache is enabled, the caching policies setup in the MPU are: SDRAM: Normal Write Back AXI SRAM: Normal Write Through The cache maintenance operations in TouchGFXGeneratedHal.cpp invalidate the entire cache, which seems a bit heavy handed, but work fine so far: void TouchGFXGeneratedHAL::InvalidateCache() { // Because DMA2D access main memory directly, the DCache must be invalidated // becuase it could hold a wrong image of the framebuffer. That's done // using the function SCB_CleanInvalidateDCache(). Remember to enable // "CPU Cache" in the "System Core" settings for "Cortex M7" in CubeMX // in order for this function call to work. if (SCB->CCR & SCB_CCR_DC_Msk) { SCB_CleanInvalidateDCache(); } } void TouchGFXGeneratedHAL::FlushCache() { // If the framebuffer is placed in Write-Back cached memory (e.g. SRA
Please refer to this thread that, for some reason, @FBL accepted as an answer (it is not) https://community.st.com/t5/stm32-mcus-embedded-software/usbx-audio-class-frame-done-callback-not-called/td-p/855262I'm seeing that when I try to start an audio flux from my PC to the USB Audio driver, I'm seeing the error handler being called with the following stack:status = _ux_device_stack_transfer_request(transfer, max_packet_size, max_packet_size); triggers the error as the status is 38 (what does it mean?). Inside the function, I've foundstatus = dcd -> ux_slave_dcd_function(dcd, UX_DCD_TRANSFER_REQUEST, transfer_request);which is the one that returns 38.In ux_api.h, the only value I was able to find that matches the return value was#define UX_TRANSFER_BUS_RESET 0x26 From here, I'm stuck as the ux_slave_dcd_function is defined as typedef struct UX_SLAVE_DCD_STRUCT { UINT ux_slave_dcd_status; UINT ux_slave_dcd_controller_type; UINT ux_slave_dcd_otg_capabi
It turns out the GDB shipped with TouchGFX 4.25.00 has an issue where it can't set the breakpoint in VSCode when the software is running.The only workaround is to set the breakpoints before launching the debug.The issue is reported it https://github.com/microsoft/vscode-cpptools/issues/13191#issuecomment-2787932838To fix the issue you can use the GDB shipped with the latest version of MYSYS2 https://packages.msys2.org/packages/mingw-w64-x86_64-gdbYou just run on the terminal pacman -S mingw-w64-x86_64-gdb In the launch.json you set "miDebuggerPath": "C:/msys64/mingw64/bin/gdb.exe", (or the location where it has been installed) and in the task.json in "env": {"PATH": "C:/msys64/mingw64/bin;"}
Hello, I'm working with the STM32U575VGT6 as my primary MCU and need a USB-C DRP PD IC. I'm considering the TCPP03-M20 or STUSB1600AQTR. My question is, when the PD operates in sink mode (during charging), we intend to turn off all power supplies, including the MCU. Is it possible to use these ICs in sink mode without the MCU? Additionally, we need the PD to act as a source when external peripherals are connected to this board through USB-C.
I am working with Zephyr RTOS on the Nucleo-H7S3L8 board and have successfully flashed and run the blinky example on internal flash. However, I noticed that Zephyr does not provide official documentation for flashing applications into external flash. My question: Does Zephyr offer any official method or west command to flash applications directly into external flash, similar to how west flash works for internal flash?
Hello! I saw in the release notes for MCSDK 6.4.0 that there is an "Added new Maximum Modulation Index (MMI) computation compatible for all sensor-less or sensor algorithms." How should I use overmodulation on the HSO?
I'm using STM32H723ZG I want to know if a Timer's update event can trigger SPI transfer without any software interrupts.This is the problem
I'm currently developing an application with custom hardware using the STM32N657I0H3Q and MX25UM256, I can't seem to find the source files for the existing STM32N6 external loaders which use the MX25UM512. Any links to this or resources to point me in the right direction to get started would be appreciated!
I am using the STM32F469 development board to output MIPI video to a custom screen (GC9503CV), and the screen shows tearing.The left side of the screen displays normally, while the right side shows a jagged appearance. How should I locate and resolve the issue?
Hello,I am trying to erase flash bank 2 and then re-write with an incoming application. This appears to work that when I read back some of this sector it's changed to 0xFFFFFFFF, however when I restart or connect with STLINK it reads out as 0x00000000.I only get errors if I try to write too fast after erasing flash and on POR the flash is read back as 0x00000000I have tried unlocking flash and relocking after withHAL_FLASHEx_Unlock_Bank2(); // erase HAL_FLASHEx_Lock_Bank2(); // and or HAL_FLASH_Unlock(); // erase here HAL_FLASH_Lock();voltage range is correct. FLASH_EraseInitTypeDef erase_init; erase_init.TypeErase = FLASH_TYPEERASE_SECTORS; erase_init.Sector = 0; erase_init.NbSectors = 1; erase_init.Banks = FLASH_BANK_2; erase_init.VoltageRange = FLASH_VOLTAGE_RANGE_3; HAL_FLASHEx_Erase(&erase_init, &sector_error); any suggestions or help would be appreciated
Hello, I am trying to configure my STM32H723ZG to be able to read the value of a few current sensors. My main concern at the moment is the speed at which I need to read these. I'm hoping to be reading upwards of rate of 20kHz. My questions are about which method might be best, the standard way of reading the ADCs seems insufficient, I've seen online some methods are DMA and injected conversions. If anyone could provide some insight into what might be best and how to go about implementing them that would be great.Additionally, I wanted to ask how to determine an appropriate sampling time of the ADC. Thank you in advance for your help!
Hello,In one of our new PCBs we use a STM32L476VET6. For the RTC we use an external Oscillator (shown in the Picture)The drive power is set to the highest level.In our setup, the RTC only works at room temperature and with no probe connected. As soon as the oscillator is heated up to 65°C, it stops working. Same behaviour with the freezer spray. When a Probe for the oscilloscope is connectet to OSC_32_IN, the Oscillator also stops.We measured the frequency of the oscillator using the MCO-Output on PA8. This way we found out, that the frequency is within the specified range of the oscillator. When using a slightly higher load capacity the frequency drops out of the specified range. When the load capacitence is lowered (we tried 15pF) , the frequency rises higher than the specifiaction of the oscillator. This makes us certain, that the right load-capacitence is used.We also tested the oscillation-safety-factor by adding a resistor, three times the ESR of the oscillator in series to it. T
Hello everyone. I am using an F411 and I cannot figure out how this is supposed to work. I enabled USB_Device in middleware, enabled USB_OTG_FS, and set up line encodings based on the default STM32 example, but when I flash STM (or step through with the debugger) I run into an error during the initialization that says "The last USB device you connected to this computer malfunctioned, and Windows does not recognize it." Apparently this means I am not enumerating.I went through other posts on this forum. I made sure interrupts were enabled, that the clock is exactly 48 Hz, and I allocated extra space on the heap and the stack. Here is a picture of my clock.Here is my USB schematic. What does this mean? How can I even go about fixing this?Thanks
I have noticed that in my Application project there is no SystemClock_Config() generated by CubeIDE so my guess is that these settings should be inherited from Boot stage. If that is the case, should I also not initialize XSPI interfaces, memories and memory mapped modes if they are also initialized in Boot stage?
Hello everyone,I’m working on an electronic design using the STM32WB55RGV6, and the final product cost is very constrained.I have a question regarding the SMPS components, specifically the capacitor C29 and the inductor L1 shown in the reference designs.Are these components strictly required for proper operation, or is it possible to omit them when trying to reduce the BOM cost?If they can be omitted, what is the recommended way to handle the corresponding SMPS pins on the MCU? Should they be left NC, tied to a specific level, or handled in another way?Any guidance or official recommendation would be greatly appreciated.Thank you very much!
I am trying to develop I2S master using the NUCLEO-L433RC-P, but struggling to achieve a master clock speed for 48kHz playback.The I2S audio is working (using a MAX98357A I2S amplifier) and the master clock speed needs to be 12.88MHz (i.e. 48kHz x 256). But with my current clock configuration it is 18.285MHz, so the playback speed is too fast. I tried entering 12.888MHz as the SAI clock speed to resolve the configuration and it came up with the configuration below, but with this configuration my code does not run.... Is it possible to achieve 48kHz playback using the internal RC oscillators, or do I have to use the HSE ?
I need Threadx CMSIS RTOS V2 support. Does the H5 V 1.5. (the latest) support CMSIS RTOS V2?
Hello, I'm currently building an application with TouchGFX that has many screens. We don't have a touchscreen, and only use hardware buttons. My application requires that if a trouble code is detected on the vehicle bus, relevant information should popup on the screen. The popup takes over the screen, and button presses that the user enters are handled by the popup instead of the previously open screen. The user can acknowledge the trouble code by pressing a hardware button which will make the popup go away and return to the screen that had been previously open. If multiple trouble codes are active simultaneously the highest priority trouble code will show up first. Pressing the acknowledge button will cause the next highest priority trouble code to show up until all active codes have been acknowledged, at which point the popup will go away and return to the screen that had been previously open. I've thought through two possible implementations for this problem and neither works p
Hello,I am using a NUCLEO-STM32H753ZI-$AT3 development board.When I configure the MCU to use the internal clock (HSI), everything works correctly and my UART debug logs are printed normally.However, when I switch to using the external 25 MHz clock (HSE), no UART logs are printed. The code runs,but the UART prints garbage characters, for example:<0x1c><0xe0><0xfc><0x1c><0xeWhat I have already checked:25 MHz external clock is selected in CubeMX (HSE ON, Crystal/Ceramic Resonator).PLL settings are unchanged except switching HSI → HSE.UART baud rate is the same (115200).If I go back to internal HSI, UART prints again.External clock ioc and logIternal clock ioc and log
Hi ST Team,I am currently using STM32H563ZIT6 and STM32H755ZIT6 in my project. We are now preparing to move from prototype to mass production, with an estimated requirement of ~10,000,000 units per year.As we transition into production, I am facing some issues and have a few important questions:1. Industrial-grade reliability & supportAre STM32 devices supported at an industrial-grade level similar to NXP or TI?Since we are planning large-volume production, I would like to understand:What type of technical support can ST provide during production ramp-up?Is it possible to get a dedicated technical contact or mentor for guidance?2. LocationI am based in Coimbatore, India.Please let me know the support timeline and whether any local ST representatives or FAEs can assist.3. Current issuesFor reference, here are my recent queries on the ST Community, which are still unresolved:STM32H755 end-of-frame detection failing with EventFlags:https://community.st.com/t5/stm32-mcus-embedded-softw
Hello everyone,We are developing a custom UART driver for the NUCLEO-U031R8 board where both transmit and receive operations are handled through interrupts (no HAL/LL blocking calls). However, we are facing a major issue: we are unable to reliably read from or write to the UART peripheral registers.We have tried accessing USART registers directly (e.g., USARTx->RDR, USARTx->TDR, ISR, CR1, etc.), but the values do not change as expected during runtime. Because of this, our interrupt-driven communication never starts properly.We have verified:Clock to USART is enabledGPIO pins are configured for the correct alternate functionNVIC interrupt is enabledCR1 bits for UE, TE, RE, RXNEIE, TXEIE are setDespite that, both TXE and RXNE interrupt behaviors do not match what we expect, and register access seems unresponsive.Has anyone encountered similar issues on STM32U0 series or this particular NUCLEO board?Any guidance or known pitfalls (clocking, low-power modes, register protections, etc
Hello ST Community team, On the UM1472 Rev 8, the table 9 board revision history, it is mentioned that the MB997 initial rev is the B01 and the last rev is the F01. But on the https://www.st.com/en/evaluation-tools/stm32f4discovery.html#cad-resources, I’m not able to find the B01 and F01 schematic packs. For the bill of material, F01 is missing but B01 is available. Could you please check this . Nharkom zine. II
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.