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 there!i start one of my new project with STM32cubeide 2.0. First i start with configure mu MCU in STM32CUBEMX in this casa STM32G031K8T6 afther i configurate all pin i create a poject . So afther i import my project in STM32CubeIde 2.0 and i build gave me this error:Core\inc\main.h: fatal error: stm32g0xx_hal.h: No such file or directory #include "stm32g0xx_hal.h" but i check with F3 and this file exist , so please someone can help me ? Thank youSergio
Summary:HDMI output on STM32MP257F-DK board does not function with 800x480 HDMI display. The ADV7535 DSI-to-HDMI bridge driver loads and binds successfully, but the probe() function never executes, leaving the bridge in powered-down state. Display shows only backlight, no image.Hardware Configuration:Board: STM32MP257F-DK Discovery BoardFirmware: OpenSTLinux v25.06.11 (latest as of Jan 2026)Display: 800x480 HDMI display (Raspberry Pi compatible)EDID: Acer G50 (110x60mm)Native resolution: 800x480 @ 60HzHDMI cable: Standard HDMI-to-HDMConnection: HDMI port (CN14) → Display via HDMI cableSoftware Configuration:Images tested:FlashLayout_emmc_stm32mp257f-dk-fastboot.tsv (eMMC)FlashLayout_sdcard_stm32mp257f-dk-optee.tsv (microSD)DTB variants tested:stm32mp257f-dk-ca35tdcid-ostl-m33-examples.dtb (default)stm32mp257f-dk.dtb (standard)Result: Same behavior with all combinationsKernel: 6.6.78OS: ST OpenSTLinux - Weston - v5.0.8-openstlinux-6.6-yocto-scarthgap-mpu-v25.06.11Problem Description:Obs
I'm developing a power bus manager where I monitor current and voltage drop across a shunt resistor. I chose the STM32G484 as the MCU because it has enough OpAmps and ADCs for my project.However, I have a question that might only be related to electronics, but I'd like to be sure it won't affect the MCU.The bus is supplied by a DC-DC switched-mode power supply where the highest voltage is 12V. We know the voltage drop across the shunt resistor is minimal. So, could I connect the "plus" and "minus" inputs directly to the shunt resistor? Is it necessary to define the gain loop? Or can I work without it? In this case, the question is whether the MCU allows parameterizing the input where "plus" and "minus" are connected directly to the GPIO without any internal interference.Thank you for your support.ps: The project is being developed under CC-By 4.0 license and is available at https://kepr.rapport.tec.br
Hi!Was hit by a non-obvious difference between the ARM and ST GCC toolchains.I installed the following toolchains (from the official ARM and ST websites) in two separate Docker containers.Their --version outputs are:ST toolchainarm-none-eabi-gcc (GNU Tools for STM32 13.3.rel1.20240926-1715) 13.3.1 20240614 ARM toolchainarm-none-eabi-gcc (Arm GNU Toolchain 13.3.Rel1 (Build arm-13.24)) 13.3.1 20240614 Then I compiled a simple main.c using the cyclomatic complexity option:arm-none-eabi-gcc -c main.c -fcyclomatic-complexity -o build/main.o Results:ARM GCC 13 reports:arm-none-eabi-gcc: error: unrecognized command-line option '-fcyclomatic-complexity' ST GCC 13 accepts the option without any error.So even though both toolchains report the same GCC version, the ST build includes this option while the ARM reference toolchain does not.This suggests that there may be additional differences between the two toolchains.When using both toolchains - or migrating from one to the other - be careful.Jus
Hello,I would like to get information about the availability of the following devices:STM32H562IGK6 UFBGA 144 package (10 × 10 mm, 0.8 mm pitch)STM32H562IGT6Could you please clarify:Are these devices currently available in stock for production volumes (~1,000 pieces)?If they are out of stock, what is the reason and what is the expected availability / product longevity?Are there any devices available now for prototyping, in quantities of about 50 pieces?Thank you for your support.Best regards,Aymen
I am working bare-metal on an STM32L433RCT6 (no HAL). I am seeing a precise data bus fault whenever I access a GPIO register.Fault details from the debugger:Fault type: Precise data bus faultBFAR: 0x48000000From RM0394, 0x48000000 is the GPIOA base address, so the fault occurs exactly on GPIO access.The faulting instruction is a normal GPIO register read/write (e.g. ODR access). The GPIO struct layout and offsets are correct, and the compiler generates correct code.I understand that on STM32, a precise bus fault on a valid peripheral address usually means the peripheral clock is disabled.However, I explicitly enable the GPIO clock before accessing it:*(volatile uint32_t*)0x4002104C |= (1 << 0); // RCC_AHB2ENR, GPIOAENAdditional context:Custom register definitions for GPIO/RCC (not HAL)Fault occurs before/at first GPIO accessProgram resets and lands back in Reset_HandlerBFAR(via Fault Analyzer) consistently reports 0x48000000I will also attach the stm32l433xx.h, stm32l433xx_gpio_d
Hi,i'm playing around with the VL53L4CX after putting it on my own pcb (yay).The user guide states that for the SPAD caliberation, NO target should be placed. The crosstalk requires a 600mm target.Do i understand correctly that the SPAD caliberation therefor is best performed outside and upwards to the sky? Or maybe in a room that is at least 6 meter long?It confuses me because i wonder how this is done in a factory where space is a premium :) Kind regards, Ruben
Posted on July 25, 2013 at 11:26 Hi ! When running the VCP USB Stack (STM32_USB-Host-Device_Lib_V2.1.0) on my STM32F4 i got an error code on my Win7 x64 sytem. ''This device cannot start(code 10)'' I'm using the USB HS Port on PORTB in FS mode. Finally i found a solution for it. The source code of the file usbd_conf.h must be changed in the following way: Old: /* CDC Endpoints parameters: you can fine tune these values depending on the needed baudrates and performance. */ #ifdef USE_USB_OTG_HS #define CDC_DATA_MAX_PACKET_SIZE 512 /* Endpoint IN & OUT Packet size */ #define CDC_CMD_PACKET_SZE 8 /* Control Endpoint Packet size */ New /* CDC Endpoints parameters: you can fine tune these values depending on the needed baudrates and performance. */ #ifdef USE_USB_OTG_HS #define CDC_DATA_MAX_PACKET_SIZE 64 /* Endpoint IN & OUT Packet size */ #define CDC_CMD_PACKET_SZE 8 /* Control Endpoint Packet size */ This change is only necessary when using t
I have a PCBA design that uses a Molex Picoblade connector instead of RJ45 due to enclosure height restrictions. The PHY IC is a LAN8742A and the MCU is STM32H743VIT6, the ethernet is also POE.I have spliced, a ethernet and 8pin Picoblade connector together to make a 6in cable that plugs into a router. I figured with such a short distance and being 10/100 that while not ideal should still work. I maintained the RJ45 pinout. There is also a POE circuit using a small Silvertel AG9905 module, that is working as expected.Of the 10 boards 3 seem to work but not without some issues. They refuse to work off cold boots (from off to powered) they only seem to work after a warm boot. Also they arent fully stable, sometimes connecting or disconnecting the cable can crash the system or pinging the system can also crash the working boards.For the remaining 7 I am able to assign them a static IP and random MAC, and I can confirm this by seeing the device connected on the router UI, but when I ping
Hello. I am experimenting with securing a STM32H503 using password authentication, which will ultimately be an automated process.I created a simple password for testing and created the password hash in board_password.bin and da_password.bin(just for comparison, I also used Segger's advice and tried certutil and the resulting board_password.bin file is identical, so I'm pretty sure the password hash worked).I set the chip to PRODUCT_STATE provisioning and programmed the chip with the password using the following:STM32_Programmer_CLI.exe -c port=SWD speed=fast ap=1 mode=Hotplug -ob PRODUCT_STATE=0x17STM32_Programmer_CLI.exe -c port=SWD speed=fast ap=1 mode=Hotplug -w board_password.bin 0x8FFF000Both of these commands succeeded with no errorsAs recommended, I locked the OTP so I wouldn't accidentally damage it by overwriting by:STM32_Programmer_CLI.exe -c port=SWD speed=fast ap=1 mode=Hotplug -ob LOCKBL=0x1Again, no errorsFinally I set PRODUCT_STATE to PROVISIONED and aga
Hi there,I found an issue with the CubeMX 6.16.1 during the TouchGFX usage. I generated the files by TouchGFX 4.26 (selected the Stm32h7s7 development board with 24bpp project) and opened the cubemx to generate the code (I've been using vscode so I changed only the toolchain/IDE to Cmake and and with these settings the project was flashed and worked everything correctly.However, when I wanted to use the generate perpheral initialization as par of 'c/h' files and screen was struggled and couldn't read it's content. Nothing else was changed. In the visual studio I cleaned and rebuild the project but it did not work at all.Would it be possible to solve this?Thank you in advance!
I have legacy SBSFU based system running on an stm32f429 for a few years now, based on the STM32F413ZHT6 demo code that was present in the package. I am now interesting to using the KMS feature of SBSFU but after reading um2622 /seeing https://www.youtube.com/watch?v=YjiNaTHQp2s I am a bit at a dead end on how to start as none of the kms files seem to be compiled in my bootloader. I am now getting the impression there is no KMS support at all on an stm32F4, this based on the fact that for example Figure 14 with the project folder structure in um26222 shows images with _KMS but this does not exist for the stm32f4 version I started from. So is KMS a no-go on STM32F4 because it uses features not available on STM32F4 ?Looking at Figure 4 SBSFU security IPs vs. STM32 series of um2262 this seems to be the case if I understand that correctly (it seems to be needing this Firewall thing) ?If it is not supported, I would suggest adding this information at the very
I am trying to integrate a very simple TouchGFX Application into the SBSFU (I only really need SB right now) application, on STM32U5A9J-DKI've switched out the Nonsecure application for mine, I've modified flash_layout to do primary only, no external loader, 1 image. I modified the template loader script to have a Framebuffer section that spans SRAM3 (minus the secure section) and SRAM5. I'm using the startup_stm32...c that the original nonsecure application uses.Right now. It builds and boots, and shows "Jumping to first Image Slot" and just sits. I think it's getting into the Appli_Secure, because the Users LEDs on my board are lighting up.I found some verbiage elsewhere that indicates that I likely need to unsecure the IOs and SRAMs that the new NonSecure application uses, but when I start doing that, things go haywire.For example, I've got my project setup so that I can switch back to using the original demo Appli_NonSecure with my modifed flash_layout.h and linker script, and so I
I would like to know how I can program 2 MCUs (stm32wb55cgu6) simultaneously.Currently, I am programming the FUS and BLE binaries (firmware developed by the company).We need to double production, but I can't program via DFU because an error always occurs in one of the MCUs. Is it possible to program 2 MCUs simultaneously, or is that not possible?
Hello,Recently, I’ve been asking several questions about STM32WB55 BLE behavior, and the respected @FilipKremen has provided me with great support.It turns out that all this time I was actually working with fake Chinese chips. I suspect that some of the strange issues I faced were due to that.So, I’ve now bought original STM32WB55RGV6 chips and replaced them in my devices.However, with exactly the same firmware (which worked fine on the fake chips), the BLE does not start at all.Here’s what I tried:Regenerated the project using CubeMX and CubeIDECreated a fresh new BLE project following this official tutorial: https://www.youtube.com/watch?v=CKYWy7LKL68&list=PLnMKNibPkDnG9JRe2fbOOpVpWY7E4WbJ-&index=16Tested on two different custom boards — same resultOn both boards, other functions seem fine (e.g. I can toggle LEDs on button press, and I can hit the button interrupt in debug)(I flash the chips via J-Link)However, when I set a breakpoint at void APP_BLE_Init(void), th
I have an STM32L011F4P6 with an RTC. It is running at 3.3V and 16 MHz off the internal HSI RC clock. The RTC is driven by a +/-20ppm 32.768 KHz crystal. It is running at room temperature (23-25C). After calibration, I am losing several seconds per day! What's wrong?Here's more information:I have a auto-calibration routine where it will output a 1Hz signal on PA2 and capture the rising edges using TIM2 channel 3, running at 16 MHz. I capture the start time (1st edge), I interrupt on overflow and add 65536 to a 32bit variable, and I capture the final (33rd) edge to get the total number of 16MHz clocks in 32 seconds according to the RTC. At the same time, I have a GPS module with a 1Hz output fed into PA10. I set up TIM21 channel 1 identically to the TIM2 setup, to capture the total number of 16MHz clocks in 32 seconds according to the GPS.I take the two numbers and find the difference, not in PPM but in units of calibration (0.954 PPM)
On a custom board, I would like to use the BlueNRG GUI (v.4.7.1) to run the tests described in AN4818 (rev.8) using the DTM firmware embedded in BlueNRG-1_2 DK 3.2.3.I got a connection and I am able to send basic commands, like ACI_TEST_TONE START and STOP. I see the RF signal very clearly. So, the connection with the device is good.If I open the IFR Device configuration to start LS crystal measurement and HS startup measurement I can select the options but as soon as I press the WRITE button, I got an HCI Timeout error and I need to reset the BlueNRG to get the link again.ON a side note, as soon as I connect with the Blue GUI I got a message saying "Old firmware detected on the motherboard", but I am already using the latest.Any idea? It would be nice to leverage on the BlueNRG GUI to run these tests and fine tune the LF crystal and the HS crystal startup time.Kind regardAndrea
In my project I've set the SPI clock to 125MHz; with a SPI prescaler value=4 all works good, when I set it to 2 the SPI stops working and ther is no clock signal.Any helps ? Thank youCarloV
I call HAL_UART_Init() with LPUART1 at 20Mbaud but when I activate assertion it fail at IS_UART_BAUDRATE().The IS_UART_BAUDRATE() is not correct for LPUART that can have a baudrate up to 53.3 Mbaud.Also for UART, the comparaison in IS_UART_BAUDRATE() should be <= instead of < like in IS_LL_USART_BAUDRATE().
Hello,I recently deployed multiple individual PyTorch models onto my STM32H7A3ZI-Q. My workflow ended up being:1. Convert from .pt -> .onnx -> .tf -> .tflite (quantized)2. Build an X-CUBE-AI project via CubeMX3. Swap models in same project using ST Edge AI Core CLI4. Writing scripts to semi-automate this flowIt works, but setting this up involved quite a few manual steps. Is this the most effective manner to approach this? Curious how others handle thisRegards,Ernest
Title modified by an ST moderator to be inline with the content. My goal is to establish CAN communication between Riverdi display - RVT50HQSFWA01 and my laptop. After developing a test GUI using TouchGFX 4.26.0, when I added the code patch for CAN communication then I keep on getting various build errors due to comaptibility issue between TouchGFX and STM32Cube IDE packages. If anyone has tested CAN communication for Riverdi Display boards that can help then kindly reply. I have been trying to get this done for quite sometime now and have been stuck at what seemed like a very simple task. For the sake of reference, the latest build error is : make: *** No rule to make target 'C:/TouchGFXProjects/LIB_display_1/TouchGFX/target/CortexMMCUInstrumentation.cpp', needed by 'Application/User/TouchGFX/target/CortexMMCUInstrumentation.o'. Stop.make: *** Waiting for unfinished jobs...."make -j22 all" terminated with exit code 2. Build might be incomplete. 06:43:53 Build Failed. 2 e
Hi,I've a project with TouchGFX and FreeRTOS on an STM32H7RS. I was updating the library, regenerating the code from CubeMX but, I've noticed that, for some reason, the file \Appli\TouchGFX\target\generated\nema_hal.c has changed// from - #define NEMAGFX_MEM_POOL_SIZE 16128 /* NemaGFX byte pool size in byte */ // to + #define NEMAGFX_MEM_POOL_SIZE 24320 /* NemaGFX byte pool size in byte */but I can't find in the .ioc inside the CubeMX where this value is set and why it has been changedThanks
I've had problems with sd_diskio.c used for SD card I/O with FatFs.CubeMX version is 6.16.0.I'm using SDMMC with DMA, so consideration needs to be given to cache coherency and alignment.I have both these set:#define ENABLE_SD_DMA_CACHE_MAINTENANCE 1#define ENABLE_SCRATCH_BUFFERHowever, I've found some bugs in the code:In SD_read, the alignment check:#if defined(ENABLE_SCRATCH_BUFFER)if (!((uint32_t)buff & 0x3)){#endifshould have the 0x3 changed to 0x1f, as cache alignment requires 32-byte alignment, not 4-byte.There's another case of this in SD_write.Furthermore, there's a bracketing problem in SD_write with the code under ENABLE_SCRATCH_BUFFER conditional compilation, which is supposed to be invoked when the buffer is misaligned as an else condition for if (!((uint32_t)buff & 0x1f), but is instead an else condition for a DMA success check. This means that the scratch buffer code does not run at all when a buffer misalignment is detected.To fix it, I added a closing brace
Greetings!I have the following system:STM32U073CCVBAT pin is connected to a super-cap, and it's voltage was measured to be above the required minimum.During system reset (NRST) it behaves according to my expectations, the RCC_BDCR remains unchanged, but if it is disconnected from Vcc, then upon connecting it back, the LSESYSEN bit is set to 0. This seems reasonable, and is generally not a issue to me, but the reference manual claims that this shouldn't happen? (Everything else works perfectly.)Am I missing something obvious here?Couldn't find any other mention of the bits behaviour.
Hello. My current set up is STM32Cubeide 1.19 which has an integrated version of the CubeMX (6.15)I'm currently working on some st git examples, that seem to have been created with CubeMX (6.16), thus i cannot open the .ioc file on cubeIDE. I installed cubeMX 6.16 in order to edit the .ioc file and hit generate. Once i tried to build the project on cubeIDE though i got various errorsmake: *** No rule to make target 'C:/Users/asantorinaios/STM32CubeIDE/workspace_1.19.0/BLE_Beacon/Drivers/STM32WBAxx_HAL_Driver/Src/stm32wbaxx_hal_gtzc.c', needed by 'Drivers/STM32WBAxx_HAL_Driver/stm32wbaxx_hal_gtzc.o'. Stop. "make -j12 all" terminated with exit code 2. Build might be incomplete.If i try to exclude said file from the build, i another similar error. Is the cubeMX 6.16 incompatible with the 1.19 cubeIDE. Do i need to download cubeide 2.0 or is there another solution ?
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.