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
Hello, I was able to successfully implement a way to read motor status and various parameters through UART on putty with my B-G431B-ESC1. However, when I tried following tutorials to add a way to also control the motor status (turning it on and off), I keep getting no response from the motor when I type commands in putty. I don't know if something is wrong with my code or with the way I set up putty, but im leaning more towards the code since the TX part works well. Im quite a beginner with this so maybe its something very ***, but i really cant wrap my head around it. Linked to the post is my main.c. thank you.
Hi! I’m working with the STM32N6570-DK board using an object detection AI model, and I would like to manually modify the camera parameters. I believe settings such as exposure, white balance, and similar controls are currently configured automatically, but I want to use fixed/manual values instead.I already tried modifying the cmw_camera.c file, but nothing changed. Which files do I actually need to modify in order to set specific camera parameter values? Do I need to use a dedicated tool for this?I’m using the IMX335 camera module.
Hello, In order to comply in advance with the incoming CRA regulation, we would like to have RDP1 enabled on our U575. In order to do this the fw, in the early stages of the initialization procedure, will have to check if it's in RDP0 by reading the related OBs and, if so, it will set RDP1 using HAL_FLASHEx_OBProgram: HAL_FLASH_Unlock(); HAL_FLASH_OB_Unlock(); HAL_FLASHEx_OBGetConfig(&OptionsBytesStruct); if(OB_RDP_LEVEL_0 == OptionsBytesStruct.RDPLevel) { OptionsBytesStruct.OptionType = OPTIONBYTE_RDP; OptionsBytesStruct.RDPLevel = OB_RDP_LEVEL_1; if(HAL_OK == HAL_FLASHEx_OBProgram(&OptionsBytesStruct)) { HAL_PWR_EnterSTANDBYMode(); //HAL_FLASH_OB_Launch(); } } So far so good, but now it's time to make this changes effective. As far as I understand from other tickets and by practically testing on my board, calling HAL_FLASH_OB_Launch (commented in my code) will enable RDP1 only after a power cycle of the board. I tried to issue a hard reset usi
Hi everyone,I have successfully implemented a USB VCP device on STM32G0C1 microcontroller, and it communicates perfectly with my PC.To meet current product trends, I am migrating the connector to USB Type-C (schematic attached). I am keeping it as a USB 2.0 interface. For reference, here is my current pin configuration based on the schematic:GND (Pins 1 & 12): Grounded.VBUS (Pins 2 & 11): Left floating (my device is self-powered and does not require host power).CC1 / CC2 (Pins 3 & 9): Each independently pulled down to GND via a 5.1kΩ resistor.During testing, I encountered the following issue:Using a Type-A to Type-C cable: The PC successfully recognizes the device and it works perfectly.Using a Type-C to Type-C cable: The PC fails to recognize the device at all.Could you please help me check if there is an error in my schematic? Are there any specific Type-C initialization rules or pin configurations that I must follow for C-to-C connections to work properly?Thanks in
Hello, when I was using the SDIO of F407, I encountered a problem where the SD card could only read but not write. When I enabled "HardwareFlowControl" and set "ClockDiv" to 2, the function was normal. Why is that? When I operate the SDMMC of the H750, it's the same. It must be set to the above Settings.I checked the waveform of the SD card. In terms of waveform quality, it's okay.The waveform of the clock is shown in the following figure
Hello, I am developing a project using the TCPP03 (X-NUCLEO-DRP1M1) and the ST USB-PD stack on an STM32G0 with FreeRTOS. I am concerned about the thread safety of the FLGn interrupt handling. In the standard BSP examples, the EXTI interrupt calls BSP_USBPD_PWR_EventCallback(). I2C Contention: Since BSP_USBPD_PWR_EventCallback() performs blocking I2C reads (ReadFlagRegister), what prevents the PE_Task or CAD_Task from attempting an I2C transaction at the same time? ISR Safety: In an RTOS environment, is it considered safe to perform blocking I2C calls inside the FLGn ISR, given the risk of HAL_BUSY or kernel priority issues? Best Practice: Does ST recommend a Deferred Interrupt pattern (e.g., using USBPD_DPM_CADTaskWakeUp) to move the I2C diagnostic logic out of the ISR and into a thread context?
Hello, I am following this guide:How to integrate TouchGFX and camera middleware on an STM32N6570-DK and seem to be getting an I2C1 undefined reference (below). Is there something I need to change? I have I2C2 enabled in my .ioc, but don't see anything about enabling I2C1C:/TouchGFXProjects/VisionControlboard/STM32CubeIDE/Appli/Debug/../Middlewares/stm32-mw-camera/cmw_camera_customized.c:1951:(.text.CMW_CAMERA_IMX335_Init+0x144): undefined reference to `BSP_I2C1_Init' C:/ST/STM32CubeIDE_2.0.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.14.3.rel1.win32_1.0.100.202602081740/tools/bin/../lib/gcc/arm-none-eabi/14.3.1/../../../../arm-none-eabi/bin/ld.exe: C:/TouchGFXProjects/VisionControlboard/STM32CubeIDE/Appli/Debug/../Middlewares/stm32-mw-camera/cmw_camera_customized.c:1951:(.text.CMW_CAMERA_IMX335_Init+0x148): undefined reference to `BSP_I2C1_DeInit' C:/ST/STM32CubeIDE_2.0.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltool
If I add a new .c file to my project in core/src it does not get recognized and is not complled. How do I get it into the make list?Thanks
Hi everyone,I'm trying to install the EGit plug‑in on STM32CubeIDE version 1.14.1, but I'm running into persistent issues.During the installation, the dependency calculation phase fails, and CubeIDE proposes alternative solutions. If I continue using the option to keep the original installation and modify only the required components, the process eventually ends with an installation error.The exact same problem also occurs on STM32CubeIDE version 2.0.0, so it doesn’t seem related to a single release.Below is the full error log I receive:An error occurred while collecting items to be installedsession context was:(profile=STM32CubeIDE,phase=org.eclipse.equinox.internal.p2.engine.phases.Collect, operand=, action=).No repository found containing: osgi.bundle,javax.annotation,1.3.5.v20230504-0748No repository found containing: osgi.bundle,org.eclipse.emf.common,2.29.0.v20230916-0637No repository found containing: osgi.bundle,org.eclipse.emf.ecore.xmi,2.36.0.v20231002-1156No repository found
To whom it may concern: I am looking at your STEVAL-IPFC12C1 evaluation board schematic and there is a part that doesn't make sense to me. Why would "GND_BRG_SW" be connected to V_INPUT? Are you not connecting low voltage line to a high voltage line?
Hello, I want to cancel my attendance to one of the online workshops as I won't be able to attend, by I can't find any contact information or procedure to do it.
In AN2606 Rev. 70, Chap 90 Device-dependent bootloader parameters table 226 the RAM area accessible from the bootloader seem inconsistant: - C031xx has a negative RAM range, excluding RAM at bottom and top of full RAM range as accessible from the bootloader- C01xx RAM range declares all RAM as accessible - C031xx excludes RAM at bottom and top of available RAM Please confirm these values. Thanks!
I need to use an external loader via single SPI for a project. Despite performing all the necessary steps. I'm getting an error through CubeProgrammmer./* Entry Point */ ENTRY(Init) /* Generate 2 segment for Loader code and device info */ PHDRS {Loader PT_LOAD ; SgInfo PT_LOAD ; } /* Highest address of the user mode stack */ _estack = ORIGIN(RAM) + LENGTH(RAM); /* end of RAM */ /* Generate a link error if heap and stack don't fit into RAM */ _Min_Heap_Size = 0x200; /* required amount of heap */ _Min_Stack_Size = 0x400; /* required amount of stack */ /* Specify the memory areas */ MEMORY { RAM (xrw) : ORIGIN = 0x20000004, LENGTH = 112K-4 } /* Define output sections */ SECTIONS { /* The startup code goes first into FLASH */ .isr_vector : { . = . + 0x1FC; . = ALIGN(4); KEEP(*(.isr_vector)) /* Startup code */ . = ALIGN(4); } >RAM :Loader .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >RAM .ARM : { __exidx_start = .; *(.ARM.exidx*) __exidx_end = .;
Hello, In the reference manual rm0481 (stm32h562) in chapters 7.11.38 and 7.11.51 it is stated that EDATAx_STRT Bits do not have any hardware effect. Can I assume that the corresponding bits in FLASH_EDATAxR_CUR are set from option bits only? In that case what is purpose of these bits in FLASH_EDATAxR_PRG? Are rhey also set from option bytes? What about the EDATAx_EN bit in FLASH_EDATAxR_PRG? Here the documentation is NOT stating that there is NO hardware effect. Is this correct? If yes, where does the actual setting of EDATAx_EN in FLASH_EDATAxR_CUR come from? By the way in Table 51 there is an DATA_EN1 bit in FLASH_EDATA2R option bytes. May I assume that this is a documentation error and it should in fact be DATA_EN2 Thank you
Hi,I have derived this code from the ST25NFCLib, and the software works correctly when interfacing with the NUCLEO-L476RG board.However, when I connect the same setup to my proto board, I observe a difference during the following I2C transaction.During the initialization process, the master sends command 0xDF (Measure Power Supply) and then waits for the IRQ signal.In the working setup, the IRQ status registers (1Ah–1Dh) return the values:00, 80, 00, 00Whereas in the non-working setup, the IRQ status registers return:00, 00, 00, 00I am not sure why the IRQ response is different in the proto board setup.Please note the following:Both the working and non-working setups use the same ST25R3918 daughter board.Both setups use the same interface signals: 3.3V, GND, IRQ, SCL, and SDA.The I2C communication speed is identical on both setups.I am attaching the I2C transaction screenshots for reference:The upper transaction belongs to the non-working setup.The lower transaction belongs to the work
I am using the latest STM32CubeIDE on a Windows platform - developing code for a STM32G0B1.I have a version.c file in my project that uses the __DATE__ and __TIME__ macros to create strings that I use in other modules.To ensure this file gets compiled on every build, I have a custom Pre-Build step that "touches" that file. This all works fine.However, if I use the IDE to load the code into my hardware, it always does a build beforehand. Because of this "touch", I get a new date string every time I run a debug session.Is it possible to replace the "touch" step with some kind of dependency on "all source files"? In other words, can I make it so my version.c gets recompiled ONLY if some other source file has been updated?I know that I can turn off the "Build (if required) before launching" option. But I'd rather keep that option as is, unless changing it is the only way to do what I want.Thanks.
Hi ST Community, I am working on STM32H563 with external SDRAM connected through FMC. I am trying to use: heap in SDRAM global variables in SDRAM execution/data access from SDRAM DCACHE enabled Current SDRAM mapping: 0xC0000000 I noticed that in STM32F7/H7 examples there is support for: HAL_REMAPMEMORY_FMC_SDRAM() which remaps FMC SDRAM memory regions internally. I found this in STM32F7 HAL: __HAL_SYSCFG_REMAPMEMORY_FMC_SDRAM() But on STM32H563 I cannot find any equivalent remap mechanism or SYSCFG macro. My questions are: Is there any equivalent SDRAM remap functionality available on STM32H563 / STM32H5? Is SDRAM fixed permanently at 0xC0000000 on STM32H5 architecture? Does STM32H5 treat SDRAM at 0xC0000000 differently regarding: DCACHE burst accesses MPU memory attributes speculative accesses Are there any special MPU/DCACHE recommendations for using: malloc()/calloc() heap in SDRAM .bss/.data sections in SDRAM execution from SDRAM Current observations: SDRAM works correct
i have find the same issue with 3 system ..like whenever i try to generate new stm32 project i get the same error...before that i never get this kind of error why this happened now???
Hi,I spent a few days trying to make Ux_Device_HID and Ux_Device_HID_Standalone to work on Ubuntu with latest versions of CubeMX and Cube IDE (STM32CubeIDE Version: 2.1.1, STM32CubeMX 6.17.0)The only way I managed Ux_Device_HID to work on NUCLEO-H723ZG was by the following steps:start MXselect example for nucleo board and start project directly in CubeIDE (not doing anything in CubeMX)compile project in CubeIDE without any changesflash to the board and it worksHowever, if I want to open it in CubeMX and generate code even without any changes - the resulting code does not work at all. I used git to do diff and changes are all over..Of course I could do changes in CubeIDE directly without nice MX interface, but I kind of like it simple ))Anyway, could someone form ST explain why *.ioc file from example cannot be used with Cube MX to generate a working code?
C5 implements a way to de-activate selected boot devices. This will allow to use the system bootloader on custom board were some activity on pins used by the bootloader but not used for the bootloader would inhibit use of the bootloader. This feature has been requested before and is very welcome. However neither in RM0522 nor in AN2606 I find the explanation for the fifferent bits. Did I miss something?
Hi, I'm using the STM32WBA54KG microcontroller to comunicate by BLE. In STM32CubeMX (v6.13.0), I have actived the STM32_WPAN packet and the configuration "USE_TEMPERATURE_BASED_RADIO_CALIBRATION" is "YES".I need to read the Vcore channel to know if the battery is low. How can I do it? Thanks.
Dear Sir/Madam,We are currently working on the SPC560B50 MCU and would like to know the recommended development environment and debugging tools for this device.Could you please suggest:Recommended IDE for project development and codingRecommended compiler/toolchainRecommended debugger software for source-level debuggingRecommended hardware debugger/probe for SPC560B50Currently, we are using SPC5 Studio along with PEmicro Multilink. However, we are facing issues with flashing and debugging the target.Please share the recommended development workflow and tools for flashing, coding, and debugging the SPC560B50 MCU.Best regards,Pandiyan T
Hi ST community i just searched the GUI for EV-VNF9Q20F but could not find it. Please tell us where can i get suitable GUI. and also i'm really glad if you could check the availability of SPC582B against EV-VNF9Q20F.
Hello all,I'm working on an embedded project based on an STM32F030K6T6 microcontroller.The MCU is connected to an Adafruit TFT display with an integrated resistive touchscreen. The display is driven via SPI using the ILI9341 controller, while the touchscreen is interfaced using four wires (X+, X−, Y+, Y−).The resistive touchscreen is read by dynamically configuring the GPIO pins and performing ADC measurements to retrieve raw X and Y coordinates. These raw values are then calibrated and mapped into screen coordinates to detect user interaction with the UI.The graphical interface consists of four blocks:- RELAY_1_ON- RELAY_2_ON- RELAY_3_ON- RELAY_4_ONEach block behaves like a button. When the user touches a block:- the corresponding GPIO is set HIGH to drive a MOSFET connected to a relay.When the same block is touched again:- the GPIO is set LOW, turning the relay OFF.To handle touch interaction correctly, a simple state machine is implemented to detect press and release events, ensurin
(and why is this a problem?)It looks like the backup ram can not be called through unaligned access on my STM32U585. The mighty internet says that this should not be completely unexpected since it is basically a peripheral and no standard Ram.I have set up the BKPSRAM in the linker file like this:#include "partition.h" /* Entry Point */ ENTRY(Reset_Handler) /* Highest address of the user mode stack */ _estack = ORIGIN(RAM) + LENGTH(RAM); /* end of "RAM" Ram type memory */ _Min_Heap_Size = 0x000 ; /* required amount of heap */ _Min_Stack_Size = 0x800 ; /* required amount of stack */ /* Memories definition */ MEMORY { BKPSRAM (xrw) : ORIGIN = 0x40036400, LENGTH = 2K SRAM4 (xrw) : ORIGIN = 0x28000000, LENGTH = 16K RAM (xrw) : ORIGIN = 0x20000000, LENGTH = NON_SEC_RAM_SIZE /* Secure is using end RAM3 (64k). Actual start is 0x20000000 and actual length is 768K */ FLASH (rx) : ORIGIN = 0x8000000 + APP_SLOT0_NON_SEC_APP_OFFSET, LENGTH = NON_SEC_APP_SIZE /* Memory is divided. Actual st
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.