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,I would like to report a bug in the <stm32g4xx_hal_dma.c> file (V1.2.5). In the function DMA_CalcDMAMUXChannelBaseAndMask(DMA_HandleTypeDef *hdma), there's an error in calculating hdma->DMAmuxChannelStatusMask. For DMA2 channels, the channel_number should be adjusted by adding 8, 6, or 7 according to the MCU category. Otherwise, it will NOT be able to correctly determine and clear the synchronization overrun interrupt of the corresponding channel.To give you a better understanding of the issue, I've included some relevant code snippets with comments at Line 32 below:/** * @brief Updates the DMA handle with the DMAMUX channel and status mask depending on stream number * @PAram hdma pointer to a DMA_HandleTypeDef structure that contains * the configuration information for the specified DMA Stream. * @retval None */ static void DMA_CalcDMAMUXChannelBaseAndMask(DMA_HandleTypeDef *hdma) { uint32_t dmamux_base_addr; uint32_t channel_number; DMAMUX_Channel_TypeD
Hello Everyone, I would like to get recommendations for STM32 development kits that have at least 3 DACs with their 3 independent outputs exposed, preferably a newer kit that can run an RTOS (not Linux). The faster the better. Thank you!
I have fitted an 8MHz crystal with 8.2pF capacitors to the NUCLEO-L433RC-P development board, but it is not working.The software goes to an error handler when configuring the clocks, becuase of a time out iduring the function HAL_RCC_OscConfig (wait till HSE is ready)... /* Set the new HSE configuration ---------------------------------------*/ __HAL_RCC_HSE_CONFIG(RCC_OscInitStruct->HSEState); /* Check the HSE State */ if(RCC_OscInitStruct->HSEState != RCC_HSE_OFF) { /* Get Start Tick*/ tickstart = HAL_GetTick(); /* Wait till HSE is ready */ while(READ_BIT(RCC->CR, RCC_CR_HSERDY) == 0U) { if((HAL_GetTick() - tickstart) > HSE_TIMEOUT_VALUE) { return HAL_TIMEOUT; } } } The part numbers for the crystal and capacitors are below...Crystal: CG04874-8Mhttps://www.ndk.com/en/products/upload/lineup/pdf/NDKX03-00009_en.pdfCapacitors: KGM05ACG1H8R2CHhttps://datasheets.kyocera-avx.com/C0GNP0-KGM.pdfThe clock configuration is below...The board mod
I would like to use USBX to make a CDC ECM USB device, but in STM32CubeMX, there is no option for CDC ECM or RNDIS in the USBX device class menu: The STM32U545RE on the other hand has options for CDC ECM and RNDIS: Does STM32U385 support CDC ECM and RNDIS with USBX? If yes, is there something I need to do in order to show CDC ECM as an option in STM32CubeMX? Thanks!
When "Activating clock source" is ticked in RTC module, my MCU doesn't start up if I reset it from RST button. But as soon as I switch the RCC clock source to LSE external 32.768khz crystal and change RTC Clock Mux to LSE, it works without a hitch. Is this by design or there may be a bug?
Hello,I can't setup DCMI DMA in cubeMX because in DMA list there is no available handle, then I choose DCMI interface in DMA list is enabled DCMII_PSSI request, but there is no handle, all handles is inactive, how to setup ?
As mentioned, in order to rule out the interference from the existing project, I created a new blank project. However, it still didn't work. This issue was not present in the previous version 6.13.As shown in the above picture, I have disabled spi1 but still cannot enable the quad spi mode of spi2. Please provide a solution as soon as possible, or please inform me how to roll back my project version to 6.14 or earlier. The project is urgent. Thank you.@
Hello everybody,Problem: I start a new project from scratch in CubeMX version 6.15.0 with STM32H7A3VG. First thing I do is to try to chose OCTOSPI1, Mode Quad-SPI. But it does not work. It's greyed out and I get the message:"Quad SPI disabled: Quad-SPI Mode is already activated".Same thing if I try to chose OCTOSPI2, Mode Quad-SPI.Same thing in STMCubeIDE 1.19.CubeMX version 6.14 allowed me to chose Quad-SPI.Do I miss something ? Is it a bug ?RegardsVmanne
With the last versione of STM32CUBEIDE Version: 1.19.0 i can't configure the OCTOSPI as QUADSPI
I have a Nucleo-L476RG and Nucleo-IKSO1A3. What software will I need to run examples on expansion bd sensors ?Anyone have old version of Unicleo-GUI ?version 1.10.XXX possibly? The new version does not show MEMSWhere can I find software that has these examples?"Please note that the X-CUBE_MEMS1 function pack contains examples for the NUCLEO-L476RG + the X-NUCLEO-IKS01A3 in the folder \Projects\STM32L476RG-Nucleo\Examples\IKS01A3."If not possible then which STM32 boards will work with IKS01A3 in MEMS Studio and Unicleo-GUI latest versions?
I'm using an IMU ISM330BX on my electric bicycle, and I want to detect while I'm cycling, if I'm ascending or descending a climb, and then calculate which is the angle in degrees or percentage of the slope. For this I'm using Sensor Fusion Function SFLP, which combines accelerometer and gyroscope data, and using the Gravity Vector to calculate the Pitch.When I'm static, not moving the bicycle forward or backward, just lift the front wheel while the rear wheel touches the ground, simulating pedaling uphill. The results are quite good and I can calculate the pitch and transform to degrees.The problem rise when I'm pedalling, then exists acceleration and decelerations, in this situation I can not distinguish if there is a slope (positive or negative) because these accelerations forces are masking the pitch. I tested different filter options trying to acquire the best results, but It doesn't matter which filter option I choose that always I found the same problem.I attached a pic
Hello. I'm using STM32H747XI with touchgfx designer 4.24.2 and Free RTOS 10.3.1. In this RTOS I setup some threads(with osPriorityNormal 24) and a Periodic Timer at 400ms. I notice that when I start this thread void threadEntryPoint() { // Pulisco la FIFO del'RX USART __HAL_UART_FLUSH_DRREGISTER(BARCODE_UART); char msg[BARCODE_LENGTH+1]; while (;;) { memset(msg, 0, sizeof(msg)); // Appena vedo il primo carattere ... if ( HAL_UART_Receive ( BARCODE_UART, (uint8_t*)&msg[0], 1, 50 ) == HAL_OK ) { // ... ricevo gli altri HAL_UART_Receive ( BARCODE_UART, (uint8_t*)&msg[1], BARCODE_LENGTH - 1, 50 ); if (strchr(msg, BARCODE_SUFFIX)) { queue.put(msg); } } } } Timer will not trigger. Is the reason that I have no osDelay ? Or a priority question ? Thankyou in advance.
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 everyone,I need some guidance on building a real-time face recognition pipeline on the STM32MP2 platform.My requirements:Reliable face detectionGood, consistent face embeddingsDecent FPS on MP2Preferably ONNX or pure CPU, since heavy frameworks aren’t idealMinimal external dependenciesNo reliance on TensorFlow or PyTorchI’m looking for suggestions on:Which face detector works best on MP2 (YUNet / SCRFD / BlazeFace / SSD)?Which embedding model (ArcFace, MobileFaceNet, SFace, etc.) performs well on CPU?Any recommended ONNX + OpenCV DNN pipelines that others have successfully run on MP2?Tips for optimizing inference speed on this hardwareIf anyone has experience or working examples, it would really help me understand the right direction to build a practical, efficient solution.Thanks in advance!
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 everyone,I’m working on a project based on the STM32H563RIT, and I’m encountering an issue related to SWV trace when using STM32CubeProgrammer.The firmware runs correctly in both debug mode and standalone. The problem appears only when I connect to the target with STM32CubeProgrammer and attempt to read the SWV trace. When I do so, the MCU freezes during the initialization phase, specifically inside MX_GPDMA1_Init(), where the DMA used for SPI communication is configured.As part of the investigation, I also provided the main.c file, where the full list of initialized peripherals and their initialization order can be seen.For testing, I tried swapping the initialization order between MX_GPDMA1_Init() and MX_SPI2_Init(). With this modification, the firmware starts even while connected to CubeProgrammer, but later freezes when SPI is used in DMA mode, since SPI ends up being initialized before the DMA.My questions are:Why does connecting with CubeProgrammer and reading SWV cause the
We encountered an issue with the STM32L562E-DK board when attempting to clear TZEN by changing the RDP level from 0 to 1 and then back to 0. Using the STM32CubeProgrammer, we can connect to the device via ST-LINK. The memory blank check indicates flash is empty, but the first byte verification fails during download. Additionally, the PC register value is 0xFFFF_FFFE, and the SP register value is 0xFFFF_FFFC.Could you please provide guidance on resolving this issue?
Created a number of files in your glorious new IDE.After opening and closing a few projects in at attempt to find a hidden menu option, I can now see my .project files in finder but attempting to open them with the IDE via double clicking shows NO project data, just a blank space where the explorer should be.Is this a design 'quirk' with an odd workaround where I can recover the file somehow?is it an issue with V2.0.0 which needs resolving?Or is it just an inevitable fact of dealing with this buggy rubbish software?I actually wouldn't have minded MX moving to a different platform if it was designed to move the whole stack away from this eclipse junk, but I don't understand why you'd expend effort making IDE and MX less usable whilst not bothering to do anything about the buggy or just plain weird behaviour of the IDE
I used the STM32CUBE FOR VSCODE preview version and enabled FreeRTOS in STM32CUBEMX. However, during the debugging process, the STM32CUBE RTOS STATE is empty and does not display any content, even when the program is paused.
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;"}
EVLVIPGAN65DF application note states that the provided reference design is compliant with IEC55022 Class B conducted EMI. How about radiated EMI? Is there any measurement in this regard?
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.
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.