Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Hello,I am working on USB device CDC ACM for STM32N655L0. I found an example about "Ux_Device_CDC_ACM" for NUCLEO-N657X0-Q. Can I use this example for my mcu? How can I find ioc configuration of this example?I also tried to implement this example to my project but when I change some configuration from ioc, new code is not match with this example. On the other hand, I did everything as inside of example but I am getting error during clock initalization.Best Regards,Basri KAYA
Hi, Planning to use VFQFPN68 package. I am confused about the max core clock I can use. CubeMx shows 550MHz for every "Power Regulator Voltage Scale (0-3)".I remember reading VFQFPN68 has only DCDC solution so max core clock is 400MHz Can anyone explain please?Thanks,Tim
Hi ST community,I’m working with an STM32H563 MCU and trying to use the pin labeled JTDO/TRACESWO as UART7_RX because the datasheet/alternate function table shows that this pin supports UART7_RX. However, UART transmission works correctly, but UART reception does not work when using this pin. If I switch to a different pin, both TX and RX function as expected.Here’s what I’ve checked so far:Configured the pin in STM32CubeMX as UART7_RX (alternate function mode)Verified UART7 peripheral initialization is correctChecked baud rate and UART settingsConfirmed hardware wiring:External TX connected to STM32 UART7_RXCommon GND connectedSignal level is 3.3VTried disabling trace/SWO in CubeMX by setting by debug to “Serial Wire” instead of trace modeAlso tested with debugger disconnected after programmingMy question:Is the JTDO/TRACESWO pin fully usable as UART7_RX on STM32H5, or is it reserved/limited due to debug trace functionality?Is there any additional register/configuration needed to
e.g. select I2S with "Master transmit" which should only use I2S_CK, I2S_WS and I2S_SDO, yet the I2S_SDI pin is also muxed and blocked for other use (and both DMA directions are available)
Hello, I've just received my custom PCB with an STM32H743VIT6 MCU. It has a Samsung eMMC connected to the SDMMC1 interface (MMC 8 Bits Wide Bus) : (I'll link the eMMC datasheet below.) I'm encountering some issues while initializing the device with the MX_SDMMC1_MMC_Init function. More particularly it seems to be stuck in the HAL_MMC_InitCard function, on this block : /* Card initialization */ errorstate = MMC_InitCard(hmmc); if (errorstate != HAL_MMC_ERROR_NONE) { hmmc->State = HAL_MMC_STATE_READY; hmmc->ErrorCode |= errorstate; return HAL_ERROR; } When i launch a debug session it seems to freeze on this block : /* Get CSD parameters */ if (HAL_MMC_GetCardCSD(hmmc, &CSD) != HAL_OK) { return hmmc->ErrorCode; } Here's the variables states at this breakpoint : The data does not seem coherent. Am I missing something here ?For the configuration of the SDMMC1 interface i setted the Clock at 50MHz on the Clock Configuration, an
Hi, I'm developing a custom STM32G491CEU6 board with USB-C and pins for external ST-LINK programmer. Board is powered from external source. I connected only D+, D- and GND from on USB-C to MCU, because I wanted to use this only for debug. Right now the USB-C communication works only if ST-LINK is connected (had no idea about VBUS sensing). Can i override it somehow? Schematics below
My STM32H745I-DISCO touch screen stopped working after a HardFault/debugger crash while running a test app generated by STM32CubeMX ("Create project from board"). The display works perfectly but touch is completely unresponsive. Steps already taken: Full chip erase + reflashed official FULL.hex (with MT25TL01G external loader) Verified option bytes (RDP=AA, BCM4 and BCM7 both enabled) Fixed reset mode from "Hardware reset" to "Software reset" ST-LINK firmware is up to date (V3J17M10) I2C4 registers show uninitialized on both cores Display works, buttons visible, but no touch response at all.
Hi Team,We are planning to use an STM32 camera interface over USB using the UVC protocol in our upcoming design. We would like to understand if there are any evaluation or development boards available that can be used for initial testing.Our key requirements are as follows:Image size: up to 5 MB per captureCapture interval: one image every 30 seconds (worst case)Video streaming is not required; we only need still image capture and transferUSB-based camera interface preferredWe would like to know:Whether UVC is suitable for this type of non-streaming, low-frame-rate image transferIf anyone has implemented a simpler or similar design successfullyWhich STM32 controller models support this use caseAvailability of any development or evaluation boards for testing the camera over USBPlease share your recommendations, reference designs, or documentation links if available.Looking forward to your guidance.Regards,Sathiya
I have a question regarding an F407 wake-up error. I am using an F407ZGT and have connected the power switch to PA0 using a pull-down resistor. HAL_SuspendTick(); HAL_PWR_EnableWakeUpPin( PWR_WAKEUP_PIN1 ); __HAL_PWR_CLEAR_FLAG( PWR_FLAG_WU | PWR_FLAG_SB ); HAL_PWR_EnterSTANDBYMode(); I have been using this code successfully. However, after modifying the firmware and downloading it, or when downloading via the gang tool, the MCU fails to wake up via the wake-up input—though not always. Once this issue occurs on a board, the wake-up function permanently stops working, regardless of any operations performed. Is there any way to restore the wake-up function? Please help me!
This is in relation to post "Strange behavior with STM32G474QE pin PB4(Solved: Re: Strange behaviour with STM32G474QE pin PB4 - STMicroelectronics Community)" I'm facing the issue of PB4 going high for 27ms approx after MCU reset. My design is freezed, And this pin is connected to a relay which turns ON when this pin goes high. The relay turn on time is 7.5ms. Is there a solution in code initialization so that this pulse stays below 7.5ms. I'm attaching the waveform.
I have a self-contained widget (a rectangle of 360x60) which has a draggable mixin and a custom handleDragEvent.void WarningModal::handleDragEvent(const touchgfx::DragEvent& event) { if (!draggingEnabled || !animator) return; int16_t newX = animator->getX() + event.getDeltaX(); // Hard clamp: never allow leftward movement past the resting position if (newX < WARNING_MODAL_VISIBLE_X) newX = WARNING_MODAL_VISIBLE_X; animator->moveTo(newX, WARNING_MODAL_Y); }Basically it can only be dragged from left to rightI'm noticing that, if I try to move it up and down, I'm able to generate a wobbling movement up and down because, the widget tends to return to its WARNING_MODAL_Y due to the modeTo line.Is there a way to disable the drag for an axis to get a smooth movement right-left or up-down
Hi I have a project with STM32F446RET6 which has custom bootloader and application in user defined location. This project does UART Bootloader for firmware upgrade - issue faced is if the device loses power while in between the firmware upgrade then the device is neither in UART bootloader/DFU mode nor has a valid firmware. The solution which i want to implement is keeping two image of the application in two slot A and B. Normal working in Slot A and backup in Slot B. Firmware upgrade happens in Slot A and if fails copy the firmware from Slot B otherwise copy Slot A to Slot B. can anyone provide a simple logic which can be implemented to check if the firmware upgrade is completed and successful in SlotA. I would not like to add CRC check.
Hello, everyone,I am currently working on a project using STM32WB07CC. During the design of low power consumption, I found that when waking up the MCU from the deepstop mode through the wakeup pin, it is impossible to obtain the wakeup source by accessing PWRC->SR1&SR3. However, when waking up through the RTC, it is possible to obtain the source. After referring to the demo provided by ST, I also discovered the same issue.I hope everyone can help me solve this problem.thank.
Hi all, I've noticed that a DHCP client can not get an IP address from the server if both mDNS server and DHCP client are enabled. The reason seems to be in ST Ethernet driver (nx_stm32_eth_driver.c): static UINT _nx_driver_hardware_initialize(NX_IP_DRIVER *driver_req_ptr) { ... FilterConfig.BroadcastFilter = ENABLE; ... } static UINT _nx_driver_hardware_multicast_join(NX_IP_DRIVER *driver_req_ptr) { /* Increase the multicast count. */ nx_driver_information.nx_driver_information_multicast_count++; /* Enable multicast frame reception. */ FilterConfig.PassAllMulticast = ENABLE; HAL_ETH_SetMACFilterConfig(&eth_handle, &FilterConfig); /* Return success. */ return(NX_SUCCESS); } In _nx_driver_hardware_initialize() FilterConfig is just prepared, there is no HAL_ETH_SetMACFilterConfig() call. That's why DHCP works OK if mDNS is not used. If mDNS is active, it calls _nx_driver_hardware_multicast_join() and applies a prepared 
I am using the STM32H733 controller along with the NetXDuo networking stack. The issue started after updating the HAL drivers in my project from version v1.11.0 to v1.16.0 (released on February 24, 2026).After this update, I observed that when the device boots up and no network activity occurs for a certain period (for example, no ping requests are sent to the device or device sending any UDP packet), the Ethernet connection is eventually lost permanently. Once this happens, the device becomes unreachable over Ethernet, and neither a soft reset nor a hard reset restores the connection.However, if the device receives a ping immediately after booting, or if it sends a UDP packet shortly after startup from the device, the Ethernet connection remains stable. In this case, normal operation continues without any issues until the device is reset again and no network activity is observed for a certain period as well.This problem only appeared after updating the HAL drivers to version v1.16.0 a
Hi, I need to use a 5V external clock for an stm32g473. The datasheet in table 39. High-speed external user clock characteristics says Vhsel is max Vdd, but Table 12. STM32G473xB/xC/xE pin definition says PF0 / OSC_IN is FT_a (five volt tolerant). Is it safe to use an external 5V clock ? Thx,
Ok, this is perhaps esoteric, so maybe there is some research out there. I am looking at STM32U3 or STM32C5, but the problem applies to pretty much all CM33 based ST MCUs. The bus matrix implies a fast multiplexor for GPDMA (and SDMMC) to SRAM1. So unless dealing with burst transfers to SRAM (yes, SDMMC does that, and the GPDMA channels with the 32 byte FIFO could do that if the transfer is a multiple of 4 bytes), this fast multiplexor seems to save 1 clock reducing a beat to 2 clocks (if somebody has details for AHB vs. APB, that would be interesting). So to minimize latency and maximize bandwidth, DMA buffers (.dma section) should go into SRAM1. So if DMA goes into SRAM1, then should not all the stacks go into SRAM2 ? I would assume burst DMA to/from SRAM1 would introduce some additional latency, especially in the way for ISR stacking / unstacking. Is this just overthinking this, or is that measurable ? Now some U3 parts have SRAM3. One thought is to
I would like to connect a 12-bit ADC operating at 10MSps to the PSSI interface of the STM32N657 device. There is some confusion as to the nature of the clock source. The reference manual indicates that this may be either an input or an output. If configured as an output, what is the source of the clock? Examples suggest that a PWM timer needs to be used. Here is an illustration of what I would like to do:Do I need to use the PWM timer as the clock source?
(I've opened an issue on GitHub on this matter already, but I was asked to post it here again...)Hey there,I'm currently developing an audio application based on the STM32N657 MCU. I have already implemented a working version of this application on an STM32U5A5 MCU, but now I need to port it to the N6.The application receives a PDM audio stream from a MEMS microphone via SAI. The audio data is then converted to PCM using the PDM2PCM library. On the STM32U5A5 MCU, the application uses the CM33 variant of this library (libPDMFilter_CM33_GCC_wc32.a), but I cannot find a variant of this library for the CM55 of the STM32N6 in any of the STM32Cube firmware packages.I would be very grateful for any advice or help on this matter!Thanks in advance and best regards,Jens
Hi everyone,I’m working on the STM32N6570-DK and trying to run a NetXDuo Web HTTP server as part of a secure application executing in XIP (external flash).I started from the available examples (which run from internal RAM / FSBL), but after moving the application to XIP, I’m facing instability issues (intermittent crashing issues, no ping response, etc.).From initial debugging, this seems related to:Execution latency from XIPPossible cache / MPU configuration or memory placement issuesMy questions:Is there any official or reference example for:STM32N6570-DKNetXDuo (HTTP Web server)Running in XIP mode (external flash)Within a secure application contextAre there recommended guidelines for:Placing NetXDuo and ETH driver code (RAM vs XIP)?MPU/cache configuration when using XIP with networking?Memory regions for packet pools and DMA buffers?Has anyone successfully run NetX Duo HTTP server reliably in XIP on STM32N6?
Hello everyone,I want to develop an IoT application based on STM32L496 and I am working with the BG96 modem that is embedded on P-L496-CELL02 board. The exchange of AT commands with the modem is succesfull, but, even though i insert a plastic microsim (I have actually tried two of them), i keep getting an error message "Sim Not inserted". I have enabled the simselect0 (PC2) and simselect1 (PI3) pins in CubeMX, as it is indicated by the manual (set to 0 and 1, respectively) and verify their value with my code. The board is powered with an external supply source, through Arduino Vin. The BG96 firmware version is BG96MAR02A08M1G. I have inspected soldering, short-circuits between the sim socket and contacts and everything seems to be alright. I cannot understand what could possibly be the problem, does anyone have a clue? I would be grateful.Here is my code. All AT commands return OK and seem to work. int main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MCU C
Good day, I am currently working on the development of an IoT sensor node product based around the STM32WLE5CC MCU. The product needs to be able to wake up from sleep on reception of a LoRa RF message. I have attempted to accomplish this by transmitting a long preamble and having the node receive the message by setting the radio in RxDutyCycle mode prior to sleeping. The timing of my duty cycle is such that I am guaranteed an Rx window within the preamble duration. This wakeup functionality works, however, the RSSI of the received wakeup signal is shown to be >20dBm lower than if I had just used continuous reception. This is a problem as we are now encountering suspected range issues where units can detect the preamble but fail to fully receive the associated payload. I have gone through multiple test setups with different spreading factors and the results are consistent across the tests: Test 1.1 (SF = 7, BW = 125 kHz, Preamble Len = 500, Rx = Full Receive) Wake RSSI = -
Hi Everyone, I am working on a NUCLEO-H753ZI board and want to set up Ethernet RMII communication using LwIP in STM32CubeIDE. I am looking for step-by-step guidance from the IOC file configuration to the generated code, including: Pinout configuration for RMII. LwIP middleware settings. MPU region configuration for Ethernet and LwIP memory Generating code and linker settings Any tips to ensure that ping from PC works reliably Could provide a complete, detailed guide. how to configure CubeIDE and LwIP for NUCLEO-H753ZI. Thanks in advance.
Hello Community, I am struggling with a custom board design based on the STM32H743ZIT6 (LQFP144, non-SMPS version). I’ve replaced the MCU already, but the symptoms remain identical, suggesting a fundamental hardware/layout issue. The Symptoms: Current Draw: 10mA when BOOT0 = GND. Approx. 50mA when BOOT0 = 3.3V (System Bootloader). VCAP Voltage: Measuring approx. 1.0V. Debug Connection: Using Segger J-Link (V11). "Failed to initialize DAP" / "Can not attach to CPU". VTref is stable at 3.3V, NRST is at 3.3V. USB DFU: When BOOT0 = 3.3V, Windows reports "Device Descriptor Request Failed" (Unknown Device) when connected via usb. SWD Pins: PA13/PA14 show ~1.6V when floating (no debugger connected), which is highly unusual Same Symptoms if 3.3V are supplied by ams1117 or laboratory power supply My Schematic: VBat, all Vdds, Vdda, VRef, PDR_ON are all connected to 3.3V all GNDs and AGND are connected to GND each Vcaps (2x) has a 2.2uF capacitor (alltough i am not sure abo
Hi, for an old project of mine I need the STM32CubeF4 v1.21.0 + HAL v1.5.7 but I can't find the download links to that version anymore. It seems like they got deleted from GitHub? Can someone supply me with the old version of the STM32CubeF4 including the HAL? Cheers!
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.