Get ready for the STM32 Summit 2026 | Online, November 3
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
Hi, When there is no object in front of the VL53L0x, all corrections have been made, but the following test data still appears. Why are the data so high?
Hi ST Team,We are developing a custom Qt 6 + OpenGL object detection application on the STM32MP257F-DK using OpenSTLinux 6.6, X-LINUX-AI, and the ONNX Runtime (stai_mpu) backend.Our application architecture is based on the official ST object detection example. We use the same stai_mpu_wrapper and ssd_mobilenet_pp.hpp post-processing implementation from the stai_mpu_object_detection example, while replacing the GTK/Cairo UI with our own Qt/OpenGL application.Application Architecture Board: STM32MP257F-DK OS: OpenSTLinux 6.6 AI Backend: ONNX Runtime (libstai_mpu_ort.so.6) Camera: libcamera + DCMIPP Display: Qt 6 + OpenGL (Wayland/Weston) Camera Pipeline: Viewfinder stream → RGB565 → OpenGL live preview AI stream → RGB888 → STAI inference Inference: stai_mpu_wrapper::RunInference() Post-processing: Official ssd_mobilenet_pp.hpp from the ST stai_mpu_object_detection example. 1. DCMIPP camera configuration issueOur AI model requires a 300×300 RGB888 input, so we conf
Dear ST Team, I am currently porting an SBSFU/Trust Zone -based application from the STM32U585 to the STM32U5A5. The migration is almost complete, and the bootloader is functioning as expected. The following operations complete successfully:BL2/SBSFU boots correctly. Image authentication and verification succeed. The application vector table is read correctly. The application jump is initiated using:boot_jump_to_next_image((uint32_t)&boot_jump_to_next_image, vt->reset); Both addresses appear to be valid:MSP points to Secure SRAM. Reset vector points to Secure Flash with the Thumb bit set.The application successfully reaches the Reset_Handler, so the jump from SBSFU to the application appears to be successful.However, during the startup code, execution gets stuck while clearing the .bss section.The relevant startup code is shown below:ldr r2, =_sbssb LoopFillZerobss FillZerobss: movs r3, #0 str r3, [r2], #4 LoopFillZerobss: ldr r3, =_ebss cmp r
Hello everyone,I am currently working on a project on Nucleo F756ZG where I need to :Use SAI1A and SAI2B to send audio data at the same time using TDM with 8 slots each SAI parameters are 128 bits data frames (so 16 bits per slot) Audio frequency 96k Master mode Use of HAL_SAI_Transmit_DMA to send the dataI managed to configure the SAIs, send and monitor the output data and it is working well but I noticed (an obvious I guess) latency between the payloads of the signals, between the 2 calls of the HAL_SAI_Transmit_DMA function, as you can see on the screenshot (12 us approximately). I would like to reduce this latency under 1 microsecond if possible. During my experimentations I noticed it was possible to set one SAI as master and the other one as its slave and only call HAL_SAI_Transmit_DMA once, but haven’t managed to make it work for now. Is it really possible ? I am looking for a code example to be sure to setup the SAIs properly. I can share more details of my code if necessary. T
I have read these forums and I see some have successfully got the F407 connected to KSZ8863 working. I am trying to do a simple non managed switch RMII PHY connection to the third port with no luck. I have confirmed the 50mhz clock input to the KSZ8863 is working as I can get port 1 and port 2 to transfer packets between each other, no issues at 100mbps just no packets to the processor. The schematic pdf I upload here shows my physical connections to the 407 and in the past I have successfully use the DP83848 out of the box. If anyone has a connection diagram to the 407 that works it would be much appreciated if you could share it along with any driver that you might have used.Update: I added a screenshot showing I do see rx data activity on the RII interface back at the processor.Thanks,
It will be great if you can provide I2C address change options as in many other devices on the market. There are some unused pins, why not use them to select different I2C addresses. Or if like in VL53L8CX have MISO+NCS not used in I2C mode. One may connect this pins to VCC/GND/SCL/SDA by 47k. So you have the option to preselect the address.it may be a hardware change in base device logic and so not solving any current problems, but useful for future devices.regardsChris
Can connect STM32H743 with LCD with MIPI interface ?
Hi all,I'm driving an NHD-1.5-128128G (SSD1351 controller, 4-wire SPI mode) from an STM32F303RE (Nucleo board) using the hardware SPI2 peripheral. The display has never lit up, and I've now run out of obvious things to check, so I'd appreciate a second pair of eyes.SetupDisplay: NHD-1.5-128128G Interface: 4-wire SPI (BS1=0, BS0=0, both tied to GND) MCU: STM32F303RE, HAL library, hardware SPI2 (not bit-banged) Pin mapping: CS, D/C, /RES driven as GPIO outputs; SCLK/SDIN via SPI2 hardware linesPower rails (all measured at the panel/FFC connector end, not just the breakout header)VCC: 13.0 V (measured on oscilloscope, confirmed at the connector) VCI: 3.3 V VDDIO: 3.3 V (measured directly at pin 4) VDD: not externally driven, only a 1 µF cap to GND per datasheet VCOMH / VSL: only connected to their respective decoupling caps per the reference schematic, no external driveWhat I've verified works correctly/RES toggles LOW→HIGH with correct timing (confirmed on scope) D/C toggles between comm
TL;DR: Right click your project in Project Explorer, click Properties > C/C++ General > Indexer > Enable Indexer if option is not checked. Hi all,I have seen other posts in the community about Autocomplete not working with their projects, with fixing the indexing being a possible solution that does not work for many. I have seen that some go to Window > Preferences > C/C++ > Editor > Content Assist > Advanced and enabled “Parsing-based Proposals”. For me, that did not work either, and I could not get any Autocomplete results for the HAL library or any imported APIs/libraries.However, I finally found a possible culprit when Right-Clicking a HAL_Init( ) call within my code and clicking References > Workspace/Project. A window should pop up and may relay the message “unknown results: indexer is not enabled”).Window is in top right.The solution for this lies in right clicking your project in Project Explorer and clicking Properties > C/C++ General > Indexer
Hello guys, I started a project using STM32C552RET6 and STM32CubeIDE. When I use the autocomplete feature to select a HAL function, I can’t find it. I have to type the function manually.Does anyone know how I can fix this problem?Thanks for your help.
Hi all,Is there a replacement LCD/touch panel for STM32U5G9J-DK2. I found a company that sells them but they have a minimum order of 200. I’m only in need of the LCD/touch panel, I have the PCB (MB1860A). The manufacturer Rocktech show no info that I could find. Nothing comes up in octopart.com either.Thanks.
Hi, **Environment**- STM32F7xx LL Driver (STM32F7xx_HAL_Driver)- GCC arm-none-eabi 15.2 (also reproducible with GCC ≥ 12)- Compiler flag: `-fanalyzer`- File: `STM32F7xx_HAL_Driver/Inc/stm32f7xx_ll_gpio.h`---**Problem**When building with `-fanalyzer`, GCC reports the following warning for several inline functions in stm32f7xx_ll_gpio.h:```warning: shift by count ('64') >= precision of type ('32') [-Wanalyzer-shift-count-overflow]```**Root cause**`POSITION_VAL(VAL)` is defined as `__CLZ(__RBIT(VAL))`. When the analyzer considers `Pin = 0` as a possible runtime value (which it cannot rule out without additional constraints), then:- `__RBIT(0)` → `0`- `__CLZ(0)` → `32` (implementation-defined, GCC arm-none-eabi returns 32)- `32 * 2U` → `64` → shift of a `uint32_t` by 64 = **undefined behavior** per C11 §6.5.7The affected functions all follow the same pattern:// e.g. LL_GPIO_GetPinMode (line 307–311)return (uint32_t)(READ_BIT(GPIOx->MODER, (GPIO_MODER_MODER0 << (POSIT
Similar problems with STM2CubeMX v6.18.0 when generating STM32CubeIDE project and sub-projects structure for STM32N657X0HxQ processor. The only way to succeed is to have ‘Use Default Firmware Location’ checked and ‘Generate Under Root’ NOT checked.Since I need to use ‘private’ SDK, later manually edited the .cproject and .project files accordingly :-( In my previous project I was able to use custom path (‘Generate Under Root’ NOT checked), that was STM2CubeMX v6.12.0 and the target was STM32U5 (SDK was STM32Cube_FW_U5_V1.5.0). I still have to adjust the paths manually from time to time and manually add required files.In short, STM2CubeMX always seems to be broken one way or another ...
In the STM32CubeF0 pack, PWR/PWR_CurrentConsumption example for Nucleo-F030R8:void SleepMode_Measure(void){ GPIO_InitTypeDef GPIO_InitStruct; /* Configure all GPIO as analog to reduce current consumption on non used IOs */ /* Enable GPIOs clock */ /* Warning : Reconfiguring all GPIO will close the connection with the debugger */ __HAL_RCC_GPIOA_CLK_ENABLE(); __HAL_RCC_GPIOB_CLK_ENABLE(); __HAL_RCC_GPIOC_CLK_ENABLE(); __HAL_RCC_GPIOD_CLK_ENABLE(); __HAL_RCC_GPIOF_CLK_ENABLE(); GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; // <<< Here! GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Pin = GPIO_PIN_All; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);void StopMode_Measure(void){ GPIO_InitTypeDef GPIO_InitStruct; /* Configure all GPIO as anal
This is not a real question, this is just knowledge sharing… For the context, I would read first. At this point I had x86 NFC Tag Programming application, I have been waiting for the STM to release x64-bit version of the DLLs so I could update my application to x64.I have been lurking around the community and finally found but this did not help as with the release of v3.0.0, it did came with x64 bit of DLLs but I had real hard time integrating them into my project!! Quite disappointing, eh?!! I gave up the idea of updating my application to x64 until very recently I stumble upon another question based on the question title, I clicked on it with a lot of hope and what I found was quite disappointing. Basically I felt I was in a ditch where I could not update my application to x64 even though I have x64 bit DLLs!
EVAL-SCS006V1 (TSUSB4532) is plugged into a 65W power supply with an in-line USB-C meter. With no load attached, the meter reads 20.06V, 0.016A, and 0.321W. What on the board that consumes this much power?In contrast, an EVAL-SCS006V1 (STUSB4500) is plugged into the same configuration, the meeter reads 20.07V, 0.000A, 0.000W.Please help me figure this out!
I discovered some strange behavior in the STM32CubeMX code generation for Keil µVision.I created a project with STM32CubeMX that I compile using Keil µVision. In Keil µVision, I configured two user commands in the "Options for Target" dialog under "User" in the "After Build/Rebuild" section. These commands must be executed after the software has been compiled.Whenever I regenerate the project in CubeMX due to configuration changes, the "After Build/Rebuild Run #2" command is always removed.I then tested all commands and was able to narrow the issue down exclusively to "After Build/Rebuild Run #2".Is this a bug in CubeMX, or do I need to change a setting somewhere to ensure that these commands are preserved?Please also refer to the attached screenshots.Best regards,Kai RiekBefore running CubeMX:After running CubeMX:
I have designed a custom board. I have connected SWCLK to PA3 and SWDIO to PA12. I found I can not connect. So I made a patch and connected SWDIO to PA2 which seems to be default after boot. Now I can connect to the board. However after downloading my software the board becomes unaccessible. The code is running fine on a NUCLEO-WL33CC1 board.I can not access the board with CubeProgrammer either. It is like bricked.I found one issue with LSE which I have connected to PB14 and PB15 instead of PB12 and PB13. So I changed my code disabled LSE and enabled LSI and tested this on a new board. Initially I can connect but as soon as I try to singlestep through the code contact is lost and after that the board is no longer accesable in CubeProgrammer either.I am running out of boards if I can not find a way to unbrick them. @STTwo-32
For a long time, on STM32F0, I have been using the RCC_APB2ENR_DBGMCUEN bit as a reliable indication that a debug session is active with CubeIDE - see: But this seems to have broken recently:It now seems that RCC_APB2ENR_DBGMCUEN is not set unless the ‘Debug in low power modes’ option is set in the Debug Configuration. Even when RCC_APB2ENR_DBGMCUEN is set at the start of a debug session, doing a Reset during the session (‘Reset’ button on the toolbar) will clear it.Or was this always the case, and I just happened to be (un)lucky enough never to notice it? PS:As noted in the linked thread, the DEBUGEN bit in DHCSR (the Debug Halting Control and Status Register) is not available on Cortex-M0 - so that cannot be used.
An issue has suddenly popped up on my custom boards using a STM32U575CIT6. It manifests as the MCU appearing to not run code that was successfully flashed. Viewing the registers with CubeProgrammer seems to show it repeatedly running the reset handler. Attaching to the running process with CubeIDE shows hard faults occurring in the first instruction of `__libc_init_array` which is `push {r4, r5, r6, lr}`. The hard faults are a precise data access violation and a stacking error. That instruction is the first instruction that utilizes the stack. When attached, CubeIDE cannot read any data from SRAM3. It appears as all ?’s. I found that the RCC_AHB2ENR1->SRAM3EN bit is 0, which is the clock enable bit for SRAM3. This would explain why SRAM3 appears inaccessible. Putting a breakpoint on the first instruction of the `Reset_Handler()` shows that this bit is unset even then. All other SRAM clock enable bits are set. According to the Reference Manual, that bit’s reset value is 1. All tha
Hi,NUCLEO-F401RE + X-NUCLEO-IKS02A1, MEMS Studio v2.4.0. Flashed DataLogFusion (Applications\IKS02A1\DataLogFusion), connects fine (X-NUCLEO-IKS02A1, FW: 12.1.0), but I only get "Library Evaluation" (Data Table, Charts, Sensor Fusion...). No "Quick Setup" / "Sensor Evaluation" anywhere, including under Advanced Features. DataLogTerminal gives "Board not identified."An older tutorial (MEMS Studio v1.3.0) shows a "Sensor Evaluation" section with Quick Setup, Registers Map, FSM, MLC, Qvar — raw register access, not fusion output.Question: Which X-CUBE-MEMS1 firmware (if any) enables "Sensor Evaluation"/"Quick Setup" for this board combo? Is it firmware-specific or was it removed in MEMS Studio v2.x?Thanks!
Hi!i made a custom PCB with the STM32WB1MMC. But Ii’m getting hardly 2 or 3 meters range.Seems to be the same issue as but my device is right on the edge of the PCB.My antenna keep put zone is a bit narrower than the reference board. Apart from this I not able to see what else could be wrong. Any pointers would be much appreciated. Thanks!
Previously:In that thread, @Pavel A. said:The helpful AI informs that user can define several ranges of ports to exclude from automatic allocation - but this won't prevent other apps to use these ports explicitly. The command is netsh int ipv4 add excludedportrange protocol=tcp startport=<port_number> numberofports=<N(Unfortunately, linking to specific posts within a thread is broken at the moment) The problem has now recurred: and, indeed, it does seem that the mentioned ports - 61235 & 61234 - are in an excluded range C:> netsh int ipv4 show excludedportrange tcp activeProtocol tcp Port Exclusion RangesStart Port End Port---------- -------- 5357 5357 49679 49778 49879 49978 50000 50059 * 50160 50259 59330 59429 59541 59640 59864 59963 61196 61295* - Administered port exclusions.This was working fine this Moring, so the question remains: Why has this range suddenly g
does spc58 has motor control solution like BLDC or brush motor?
After pressing the ‘Debug’ or ‘Run’ button with no target connected (or the connected target powered down), CubeIDE v2.1.1 immediately gives the “Target no device found” message in the Console window: But the UI is then locked-up for 30 seconds or so before the error pop-up appears:You can’t do anything in this time - you have to just wait for the pop-up. Not having the target connected and/or powered-up when starting a debug session is one of those silly D’oh! mistakes, and it’s immediately obvious the instant the message appears in the Console window - it is frustrating to then have to sit around waiting for the IDE to catch up before trying again. (I’m sure I had posted this before, but can’t seem to find it - maybe it got lost in the forum changeover?)
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.